system_ui_flag_hide_navigation
时间: 2023-05-01 12:02:50 浏览: 59
b'system_ui_flag_hide_navigation' 是一个英文字符串,表示隐藏系统 UI 的导航栏标志位。在 Android 应用中,开发人员可以使用该标志位来控制是否隐藏系统导航栏,在全屏模式下可以更好的展示内容,增强用户体验。
相关问题
val decorView = window.decorView decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE window.statusBarColor = Color.TRANSPARENT 这段代码已被弃用,请帮我换成新的可用写法
这段代码被弃用的原因是因为Android 11及以上版本已经更改了状态栏和导航栏的交互方式。下面是新的可用写法:
```kotlin
// 隐藏状态栏和导航栏
window.setDecorFitsSystemWindows(false)
window.insetsController?.let {
it.hide(WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars())
it.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
// 设置透明状态栏和导航栏
window.statusBarColor = Color.TRANSPARENT
window.navigationBarColor = Color.TRANSPARENT
```
需要注意的是,上述代码需要在Android 11及以上版本中运行,否则会出现编译错误。如果需要兼容旧版本的Android系统,可以使用以下代码:
```kotlin
// 隐藏状态栏和导航栏
decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
// 设置透明状态栏和导航栏
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION)
```
安卓在代码中SystemUI设置默认隐藏导航栏
要在代码中设置默认隐藏导航栏,可以使用以下代码:
```
// 隐藏导航栏
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
```
在Activity的onCreate()方法中,可以调用上述代码来隐藏导航栏。需要注意的是,当用户触摸屏幕时,导航栏会自动显示出来。如果需要在用户触摸屏幕时再次隐藏导航栏,可以使用以下代码:
```
// 触摸屏幕时再次隐藏导航栏
decorView.setOnSystemUiVisibilityChangeListener(
new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
// 隐藏导航栏
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
}
}
});
```
这样就可以在用户触摸屏幕时再次隐藏导航栏了。