覆盖我 View 的 Android 导航栏

标签 android overlay navigationbar

我在 Nexus 等设备上遇到 Android 导航栏问题。只是在所有没有硬件菜单按钮的设备上。

让我更详细地解释一下这个问题。

我有一个包含 3 个部分的应用程序。内容、ActionBar 和带有 SeekBar 的底部面板。

enter image description here

带有 SeekBar 的 ActionBar 和底部面板覆盖了内容。每次我单击内容时,带有 SeekBar 的 ActionBar 和底部面板都会消失。它的工作方式与它必须的工作方式完全相同。这是我用于隐藏系统 UI 的代码 fragment :

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {                
            decorView.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);
} else {                
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
    actionBar.hide();
}
findViewById(R.id.read_book_bottom_bar).setVisibility(View.GONE);

在我的 Activity 的onCreate 方法中,我有这段代码:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {            
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);          
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_OVERSCAN);   
}

但是,当我在带有 Android 导航栏的设备上启动应用程序时,显示带有 SeekBar 的底部面板时出现问题。简单地说,Android 导航栏用一个 SeekBar 覆盖底部面板。这是一个屏幕截图:

enter image description here

但每次我单击内容时,Android 导航栏和 ActionBar 一起消失,底部面板和 SeekBar 一起消失。所以,问题是,每当有人想在 NEXUS 等设备上使用带有 SeekBar 的底部面板时,他/她将无法使用它,因为它隐藏在 Android 导航栏下。

谁能帮我解决这个问题?提前谢谢大家。

最佳答案

最后,我用属性 fitsSystemWindows = true 解决了它。

关于覆盖我 View 的 Android 导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25471113/

相关文章:

java - 如何从 SQLite 数据库读取数据?

extjs - 在边框布局 extjs 中带有叠加层的可折叠面板

ios - Person ViewController 没有导航栏

Android Window Manager 阻止系统返回键

html - 通过 CSS 更改 PNG 图像的颜色?

css - CSS 中的下拉菜单

html - 使用 Bootstrap 折叠导航菜单后如何对齐导航链接

java - 不能从最终类继承

android - FragmentStatePagerAdapter 是否在方向更改时保存 fragment 状态?

java - Android Rest 客户端 - JSON 响应中的连字符名称