我知道这个问题已经问了很多次,我测试的解决方案提供但没有一个有效。我想隐藏 StatusBar 和工具栏,因此我使用以下代码隐藏documentation上的 statusBar :
int flags = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
getWindow().getDecorView().setSystemUiVisibility(flags);
此代码显示 statusBar :
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
它有效,但当我隐藏 statusBar 时,我的 darkPrimaryColor 仍然可见,如下图所示(我使用带有翻译的淡入淡出动画隐藏工具栏< /强>)
我也设定了android:fitsSystemWindows="false"
但在这种情况下, oolbar 落后于 statusBar 。
我也看到这个thread,但解决方案不起作用,因为我使用 drawerLayout 作为root。
这是我的布局:
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
tools:openDrawer="start">
<android.support.design.widget.CoordinatorLayout
android:id="@+id/root">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/view_epg_player" />
</android.support.design.widget.CoordinatorLayout>
<android.support.v4.widget.DrawerLayout/>
同时尝试使用绿色状态栏消失的代码但是它不平滑,仍然在寻找更好的方法,而不会造成布局混乱。
隐藏状态栏:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
显示状态栏
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);