如何隐藏Android手机上的软键栏?

时间:2013-04-30 03:20:42

标签: android android-4.2-jelly-bean

enter image description here

当我的应用程序启动时,我想隐藏软键栏(红色矩形)以拥有更大的屏幕。

  1. 我该如何隐藏它?

  2. 应用程序退出时,是否需要故意显示该栏?或者它会在应用程序退出后自动恢复?

  3. Android 4.1,手机正面没有硬件密钥。

2 个答案:

答案 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,因此应在用户离开您的应用后再次显示。