我想让一个 Activity 进入 IMMERSIVE 模式,并在它启动后立即隐藏顶部和底部系统栏。
在 android 的开发者网站上,他们说我应该使用 setSystemUiVisibility()
并提供 SYSTEM_UI_FLAG_IMMERSIVE
和 SYSTEM_UI_FLAG_HIDE_NAVIGATION
。
如何在 Activity 的 OnCreate()
方法中执行此操作?我认为 setSystemUiVisibility
未在 Activity 类中提供,它应该发生在 View 中。有解决办法吗?
更新
好的,根据doorstuck,我添加了以下几行,但我没有看到任何变化,导航栏和按钮仍然可见:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
}
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE);
}
//Rest of activity code
最佳答案
获取装饰 View :
getWindow().getDecorView().setSystemUiVisibility(...)
请记住,参数是位标志。上面的方法只调用一次:
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);
关于android - 在 android kitkat 中使用新的 IMMERSIVE 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21135445/