关于DialogFragment全屏方案

DialogFragment默认情况下就算给内部布局设置match_parent也不是全屏。于是网上就有很多的方案,讲讲我所遇到的坑。

1.给window设置高度

很多地方都是用这样的写法

        Window dialogWindow = getDialog().getWindow();
        WindowManager.LayoutParams lp = dialogWindow.getAttributes();
        lp.width = width;
        lp.height = height;
        dialogWindow.setAttributes(lp);

宽高无论设match_parent还是屏幕宽高都行。

一般情况下这样的方案确实可行,但是在全屏时候弹出软键盘会有一个闪的效果(我的是华为8.0的手机)。然后我把代码写在onStart生命周期之后,弹出软键盘是没什么问题了,但是转屏之后就不再是全屏。看得就算我解决这个问题,估计这个方案也还会出现其他问题。

2.设置style

这是我看别人一篇分析写到的,写得很好

   <item name="android:windowIsFloating">false</item>

将这个属性设为false就可以了,这种方案即简单又稳定。

贴上讲解的链接,我觉得讲得很好
https://www.jianshu.com/p/3ecad4bfc55e

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Dialog是APP开发中常用的控件,同Activity类似,拥有独立的Window窗口,但是Dialog跟Act...
    看书的小蜗牛阅读 29,299评论 10 95
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,483评论 2 59
  • 感觉世界观要崩塌了啊啊啊啊啊啊 看到同学写的代码,才发现空列表可以appden?!那我之前碰到的报错都是什么鬼...
    bathy阅读 981评论 0 0
  • 刚好听到《哎呀》,题目就有了。 坐在车上一天,看了一天的蓝天白云,不时拿手机拍照,美好的东西可以以这种方式留下来,...
    赵澄澄阅读 1,566评论 0 0
  • 2018-09-19 事件:如约与国良沟通,如实告知前因后果,也表达自己对他的建议。 感受: 我的感受:平静、满足...
    老龙_8457阅读 910评论 0 0