关于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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值