Android - 全屏模式下的 Webview 如果存在软键盘,如何隐藏通知栏

标签 android webview android-softkeyboard statusbar

我使用 WebView 开发了一个小型 Android 应用程序。使用以下方法隐藏所有 Android UI 元素,如通知栏、状态栏、操作栏:

  private void hideSystemUI() {
// Set the IMMERSIVE flag.
// Set the content to appear under the system bars so that the content
// doesn't resize when the system bars hide and show.
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 // hide nav bar
        | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
        | View.SYSTEM_UI_FLAG_IMMERSIVE);

如果我打开一个 HTML 公式并点击一个输入字段,就会出现软键盘。 但随后也会出现 Android 通知栏,这是我不想要的。 (参见图片:http://imgur.com/a/cKWg8#0) 如果我通过软键盘上的左上键关闭软键盘,通知栏仍保持打开状态并占据我 HTML 页面上标题栏的一部分。 如果软键盘打开,如何隐藏通知栏?

谢谢!

最佳答案

这对我有用。在 onCreate 中调用:

private void setupFullscreenMode() {
    View decorView = setFullscreen();
    decorView
            .setOnSystemUiVisibilityChangeListener(new OnSystemUiVisibilityChangeListener() {
                @Override
                public void onSystemUiVisibilityChange(int visibility) {
                    setFullscreen();
                }
            });
}

private View setFullscreen() {
    View decorView = getWindow().getDecorView();
    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
            | View.SYSTEM_UI_FLAG_FULLSCREEN
            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
    return decorView;
}

同时覆盖 onWindowsFocusChanged:

public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        setFullscreen();
    }
}

关于Android - 全屏模式下的 Webview 如果存在软键盘,如何隐藏通知栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26990661/

相关文章:

cocoa - 如何以编程方式从 WebView 对象中弹出 Webkit 的 Web Inspector?

android - 如何在 onSwipe 方法中更改键盘布局?

android - 获取android键盘支持的语言列表

java - 如何为我的应用程序设置菜单?

android - PHP - Openssl_decrypt 错误 : wrong final block length (AES 256 CBC mode encryption/decryption)

android - 未附加到 Activity 的 Fragment 的 IllegalStateException

java - 微调框出现错误: java.lang.RuntimeException: Unable to start activity ComponentInfo

Android 在 webview 上显示 webgl

javascript - WebView 加载 Imgur 相册失败

android - 如何允许android中软键盘后面的内容?