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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/667374

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。