Android开发 - 设置DialogFragment全屏显示

Android开发 - 设置DialogFragment全屏显示,第1张

默认的DialogFragment并不是全屏,但有些需求需要我们将对话框设置为全屏(内容全屏),Android并没有提供直接的API,通过其它不同的方法设置全屏在不同的机型上总有一些诡异的问题,经过测试,下面的方法可以实现各个机型的全屏。

测试 SDK Version = 28

覆写Fragment的onStart()方法:

上面的方法可以成功设置Dialog为全屏,但是如果在全屏的Dialog顶部有View的情况下,在某些机型View会被状态栏遮住(比如三星S9),这时需要一些特殊的设置来处理,可以参考我的文章: 解决DialogFragment在全屏时View被状态栏遮住的问题

本文原始地址 ,如有更多疑问,请参考我的其它Android相关博客: 我的博客地址

这是我写的博客里面的代码,可以参考如下,设置全屏与否:

/**

* 添加横竖屏监听,隐藏图形的菜单控件

*/

@Override

public void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig)

if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {

// // 设置全屏

// // 设置全屏

getActivity().getWindow().setFlags(

WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN)

} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {

WindowManager.LayoutParams attrs = getActivity().getWindow()

.getAttributes()

attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN

getActivity().getWindow().setAttributes(attrs)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7742621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存