首页 > 解决方案 > 如何将状态栏和导航栏设置为对片段透明

问题描述

我正在使用只有一个片段容器的片段,并试图使状态栏和导航栏透明以显示片段的内容。

我使用这种风格作为活动主题,但结果是一个透明的状态栏,显示活动布局,如图所示

 <style name="AuthTheme" parent="AppTheme">
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:navigationBarColor">@android:color/transparent</item>
</style>

状态栏

导航栏

标签: androidandroid-fragmentsandroid-statusbarandroid-navigation-bar

解决方案


在调用 setContentView() 之前在 Activity oncreate() 方法中添加此行

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    Window w = getWindow();
    w.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}

在你的容器布局中添加这个

android:fitsSystemWindows="true"

推荐阅读