具有沉浸式全屏模式的工具栏

mom*_*omo 6 android android-actionbar android-toolbar

是否可以Immersive Mode在Android KitKat和Lollipop上与工具栏结合使用?

工具栏

 <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
Run Code Online (Sandbox Code Playgroud)

隐藏操作栏(工具栏)

    // This snippet hides the system bars.
    // https://developer.android.com/training/system-ui/immersive.html
private void hideSystemUI() {
    // Set the IMMERSIVE flag.
    // Set the content to appear under the system bars so that the content
    // doesn't resize when the system bars hide and show.

    getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
                    | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
                    | View.SYSTEM_UI_FLAG_IMMERSIVE);

    getSupportActionBar().hide();
}
Run Code Online (Sandbox Code Playgroud)

这很好用.但工具栏不会再出现.

Bab*_*heb 1

这可能对其他人有帮助,我已经解决了使用View.OnSystemUiVisibilityChangeListener这里是代码片段

--------

 View mDecorView = getWindow().getDecorView();
 mDecorView.setOnSystemUiVisibilityChangeListener(mOnSystemUiVisibilityChangeListener);
-------


hideSystemUI();

---------


 private View.OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener = new View.OnSystemUiVisibilityChangeListener() {
    @Override
    public void onSystemUiVisibilityChange(int visibility) {
        if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == View.VISIBLE) {
            mToolBar.startAnimation(mSlideDown);
            getSupportActionBar().show();
        } else {
            getSupportActionBar().hide();
            mToolBar.startAnimation(mSlideUp);
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

查找完整的示例代码