Dialog默认无法全屏的原因

参考链接:https://blog.csdn.net/sydMobile/article/details/83588708?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control

记一次dialog覆盖在状态栏和导航栏上方的解决方案:

private void setStatusBar(){
    //按空白处不能取消
    setCanceledOnTouchOutside(false);
    Window window = getWindow();
    window.setGravity(Gravity.CENTER);
    //设置window背景,默认的背景会有Padding值,不能全屏。当然不一定要是透明,你可以设置其他背景,替换默认的背景即可。
    window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

    View decorView = window.getDecorView();
    //两个 flag 要结合使用,表示让应用的主体内容占用系统状态栏的空间
    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(Color.TRANSPARENT);
    //设置导航栏颜
    window.setNavigationBarColor(Color.TRANSPARENT);
    //内容扩展到导航栏
    window.setType(2026);
}

@Override
public void show() {
    super.show();
    Window win = getWindow();
    // 设置全屏,要设置在show的后面
    WindowManager.LayoutParams layoutParams = win.getAttributes();
    layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
    layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT;
    win.setAttributes(layoutParams);
}

style.xml中(代码中和xml中有的重复设置了,目前先这样写,后续调整):
<style name="FullscreenDialog" parent="android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:fitsSystemWindows">true</item>
</style>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容