在android中同时隐藏和显示带有工具栏的statusBar

时间:2016-07-04 16:35:47

标签: android statusbar android-toolbar

我知道这个问题已经问了很多次,我测试的解决方案提供但没有一个有效。我想隐藏 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 仍然可见,如下图所示(我使用带有翻译的淡入淡出动画隐藏工具栏< /强>)

enter image description here

我也设定了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);

0 个答案:

没有答案