在沉浸式模式下滚动Recycler视图时显示的状态和导航栏

时间:2016-05-19 10:50:51

标签: android android-recyclerview android-immersive

我使用此代码实现沉浸式模式:

        activity.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
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_IMMERSIVE
        );

但问题是当我滚动回收器视图时,状态和导航栏显示为项目视图到达顶部。这很难解释,但这里是gif:

https://giphy.com/gifs/xT4uQiBlagrD9ljQqc

请注意,当项目视图接近顶部时,会显示状态栏(但仅显示深色背景)。另请注意,导航栏作为项目视图的底部到达导航栏的边界(注意底部的灰色背景)。

对于回收者视图中的每个项目都会发生这种情况,这真的很烦人。

1 个答案:

答案 0 :(得分:0)

它缺少一些像沉浸式粘性的UI选项。 这是我的工作ui选项:

View decorView = getWindow().getDecorView();
int uiOptions =  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
        | View.SYSTEM_UI_FLAG_FULLSCREEN
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);