当我的应用程序启动时,我想隐藏软键栏(红色矩形)以拥有更大的屏幕。
我该如何隐藏它?
应用程序退出时,是否需要故意显示该栏?或者它会在应用程序退出后自动恢复?
Android 4.1,手机正面没有硬件密钥。
答案 0 :(得分:38)
我知道它已经很晚了,但这是正确的答案所以你要做的就是所谓的沉浸式模式。 for(API 19)
结帐:https://developer.android.com/training/system-ui/immersive.html
您要求的代码是:
@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_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
答案 1 :(得分:24)
尝试
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
来自官方doc
SYSTEM_UI_FLAG_LOW_PROFILE标志替换STATUS_BAR_HIDDEN 旗。置位时,该标志启用系统的“低调”模式 酒吧或导航栏。导航按钮暗淡和其他元素 系统栏也隐藏。启用此功能对于创建更多内容非常有用 沉浸式游戏,不会分散系统导航按钮。
SYSTEM_UI_FLAG_VISIBLE标志替换STATUS_BAR_VISIBLE标志 要求系统栏或导航栏可见。
SYSTEM_UI_FLAG_HIDE_NAVIGATION是一个请求的新标志 导航栏完全隐藏。请注意,这仅适用于 某些手机使用的导航栏(它不会隐藏系统 平板电脑上的酒吧)。导航栏会立即返回查看 系统接收用户输入。因此,此模式主要用于 视频播放或需要整个屏幕的其他情况 用户输入不是必需的。
导航栏的行为取决于应用程序IIRC,因此应在用户离开您的应用后再次显示。