关于DialogFragment全屏方案

作者: 键盘上的麒麟臂 | 来源:发表于2018-10-24 14:45 被阅读28次

    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

    相关文章

      网友评论

        本文标题:关于DialogFragment全屏方案

        本文链接:https://www.haomeiwen.com/subject/vltxtqtx.html