问题描述
private void hidesystemUI() {
View decorView = getwindow().getDecorView();
decorView.setsystemUIVisibility(
View.SYstem_UI_FLAG_IMMERSIVE_STICKY
| 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);
}
但是由于设置的条件->在某些手机需要允许应用程序使用全屏模式的地方显示,因此某些手机上出现黑色导航栏。为了解决此问题,我决定在活动膨胀时需要实现权限检查器。如果还有其他方法,请告诉我,我将尝试实现。
编辑: 这是我正在谈论的电话的条件链接: https://www.gottabemobile.com/how-to-enable-full-screen-apps-on-galaxy-s10/
解决方法
在清单文件中放入
android:theme="@style/Theme.Design.NoActionBar"
或
android:theme="@style/AppTheme"
,并在您的活动中致电hideSystemUI()
;设置内容视图之前
像这样:
final int flags = 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;
getWindow().getDecorView().setSystemUiVisibility(flags);
setContentView(R.layout.activity_main);
,
这个问题在我身上发生在 2 种不同的设备上,这是因为前置摄像头的缺口或屏幕切口。
我在 oncreate() 中使用了这段代码:
hideSystemUI();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
getWindow().getAttributes().layoutInDisplayCutoutMode =
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; }
或者在主题样式xml文件中添加这一行:
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>