在我的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);
但问题是当某些消息框或Toast显示时,软键会再次显示。 我想在任何消息框或烤面包显示时隐藏软键。
有可能......我怎么能这样做。
答案 0 :(得分:1)
对话框,意图选择器,软键盘和Toast等消息使用与主应用程序窗口不同的窗口 这些额外的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中使用此代码,因为在创建活动时也可以获得窗口焦点。