我在Nexus等设备上遇到安装Android导航栏的问题。只需在所有没有硬件菜单按钮的设备上。
让我更详细地解释一下这个问题。
我有一个应用程序,其中有3个部分。 Content,ActionBar和带有SeekBar的底部面板。
带有SeekBar的ActionBar和底部面板覆盖了内容。每次我点击内容时,ActionBar和带有SeekBar的底部面板都会消失。这完全符合它的工作方式。这是我用于隐藏系统UI的代码片段:
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);
在我的活动的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覆盖底部面板。这是一个截图:
但每次点击内容时,Android导航栏都会随着ActionBar和底部面板与SeekBar一起消失。所以,问题在于,每当有人想在NEXUS等设备上使用SeekBar的底部面板时,他/她将无法使用它,因为它隐藏在Android导航栏下。
有人可以帮我解决这个问题吗?提前谢谢大家。
答案 0 :(得分:7)
最后,我用属性fitsSystemWindows = true
解决了它。
答案 1 :(得分:0)
设置android:layout_gravity="center"
和android:layout_marginTop="30dp"
时也可能发生这种情况
我通过设置android:layout_gravity="center_horizontal"
来修复类似的问题。然后marginTop按照假设工作。