关于DialogFragment全屏方案

简介: DialogFragment默认情况下就算给内部布局设置match_parent也不是全屏。于是网上就有很多的方案,讲讲我所遇到的坑。1.给window设置高度很多地方都是用这样的写法 Window dialogWindow = getDialog().

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

目录
相关文章
|
3月前
|
UED
Flutter之ListView实现自动滑动到底部
Flutter之ListView实现自动滑动到底部
214 1
|
Java Android开发
三句代码创建全屏Dialog或者DialogFragment:带你从源码角度实现
三句代码创建全屏Dialog或者DialogFragment:带你从源码角度实现
892 0
三句代码创建全屏Dialog或者DialogFragment:带你从源码角度实现
|
Android开发 UED
Android:OnTouchListener的简单使用,按钮点击放大与缩小
Android:OnTouchListener的简单使用,按钮点击放大与缩小
427 0
|
Android开发 容器
Android开发 - 解决DialogFragment在全屏时View被状态栏遮住的问题
我的上一篇文章:设置DialogFragment全屏显示 可以设置对话框的内容全屏显示,但是存在在某些机型上顶部的View被状态栏遮住的问题。经过测试,发现了一种解决办法,在DialogFragment的onCreateView()中添加一个布局监听器: @Override public View.
2468 0
|
Android开发
Android 优化个人封装仿网易新闻可滑动标题栏 TabLayout (文字或图标)
      小菜在向朋友推荐了自己修改封装的仿网易顶部滑动标题栏 TabSlideLayout 滑动内容可以是文字也可以是网络图标,其原型为 FlycoTabLayout,但是因为年代很久远,小菜当时技术太渣,存在一些小问题,后期做过一些优化,今天趁机会整理一下。
3038 0
|
存储 Android开发 数据格式
界面无小事(三):用RecyclerView + Toolbar做个文件选择器
界面无小事(一): RecyclerView+CardView了解一下界面无小事(二): 让RecyclerView展示更多不同视图界面无小事(三):用RecyclerView + Toolbar做个文件选择器界面无小事(四):来写个滚动选择器吧!界面...
1356 0