你可以使用以下代码示例来实现在安卓中隐藏导航栏,但活动界面不充满屏幕:
RelativeLayout
,并添加以下属性:
onCreate()
方法中添加以下代码,以隐藏导航栏并扩展活动界面:// 隐藏导航栏
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
// 扩展活动界面
View mainLayout = findViewById(R.id.main_layout);
mainLayout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
请注意,为了让setSystemUiVisibility()
方法正常工作,您需要确保您的应用已经获得了系统UI的焦点。您可以在活动的onWindowFocusChanged()
方法中添加以下代码:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
// 隐藏导航栏和状态栏
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
这样,您的活动界面将不会充满整个屏幕,同时导航栏将被隐藏。