在我的Android应用程序中,我使用以下命令隐藏了软键栏:

View decorView = getWindow().getDecorView();

int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                  | View.SYSTEM_UI_FLAG_FULLSCREEN
                  | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                  | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

decorView.setSystemUiVisibility(uiOptions);


但是问题是当某些消息框或吐司显示时,然后再次显示软键。
当任何消息框或吐司显示时,我想隐藏软键。

有可能..我该怎么做。

最佳答案

对话框,意图选择器,软键盘和祝酒等消息使用的窗口与主应用程序窗口不同。
这些额外的Windows可以更改SystemUiVisibility和Window标志的出现和消失。

在大多数情况下,我发现可以工作的是在Activity类的onWindowFocusChanged中设置标志:

public void onWindowFocusChanged(boolean hasFocus) {
    if(hasFocus) {
        View decorView = getWindow().getDecorView();

        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

        decorView.setSystemUiVisibility(uiOptions);
    }
}


然后,您不再需要onCreate中的此代码,因为在活动创建时也会获得窗口焦点。

关于android - 如何隐藏android软键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45212729/

10-09 13:33