gpt4 book ai didi

android - 显示软键盘后禁用粘性沉浸模式

转载 作者:IT老高 更新时间:2023-10-28 22:18:04 29 4
gpt4 key购买 nike

我有一个应用需要在大部分时间全屏显示。我知道,如果显示警报或显示其他窗口,则在 Activity 窗口的顶部,全屏会暂时删除。不幸的是,当为 EditText 或其他内容显示软键盘时,当用户完成键盘操作时,不会恢复全屏沉浸式模式。

知道如何实现吗?

最佳答案

取自 this sample app by Google ,您需要将此附加到 Activity 的末尾,在最后一个结束括号之前:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
// When the window loses focus (e.g. the action overflow is shown),
// cancel any pending hide action. When the window gains focus,
// hide the system UI.
if (hasFocus) {
delayedHide(300);
} else {
mHideHandler.removeMessages(0);
}
}

private void hideSystemUI() {
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_LOW_PROFILE |
View.SYSTEM_UI_FLAG_IMMERSIVE
);
}

private void showSystemUI() {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
);
}

private final Handler mHideHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
hideSystemUI();
}
};

private void delayedHide(int delayMillis) {
mHideHandler.removeMessages(0);
mHideHandler.sendEmptyMessageDelayed(0, delayMillis);
}

而且你应该很好。 :)

关于android - 显示软键盘后禁用粘性沉浸模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24187728/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com