繁体   English   中英

Android软键盘启动时隐藏导航栏

[英]Hide Navigation Bar when soft keyboard is launched Android

当从活动中的编辑文本启动键盘时,我试图隐藏导航栏。 我尝试过很多解决方案,但运气不好。

我在这个论坛中找到了以下代码,但它并没有消除键盘启动时的导航栏。

private void setupMainWindowDisplayMode()
{
    View decorView = setSystemUiVisilityMode();
    decorView.setOnSystemUiVisibilityChangeListener(
            new View.OnSystemUiVisibilityChangeListener()
            {
                @Override
                public void onSystemUiVisibilityChange(int visibility)
                {
                    setSystemUiVisilityMode(); // Needed to avoid exiting immersive_sticky when keyboard is displayed
                }
            });
}

private View setSystemUiVisilityMode()
{
    View decorView = getWindow().getDecorView();
    int options;
    options = 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_STICKY | View.SYSTEM_UI_FLAG_IMMERSIVE |
            View.SYSTEM_UI_LAYOUT_FLAGS;

    decorView.setSystemUiVisibility(options);
    return decorView;
}

任何建议将不胜感激

你可能已经知道了,但只是为了确定。

您可以使用以下代码检查键盘是否可见:

InputMethodManager imm = (InputMethodManager) getActivity()
        .getSystemService(Context.INPUT_METHOD_SERVICE);

if (imm.isAcceptingText()) {
    // keyboard is shown
} else {
    // keyboard is not shown
}

然后,您可以隐藏或显示导航栏。

https://developer.android.com/training/system-ui/navigation.html#40

在上面的API中,它说

With this approach, touching anywhere on the screen causes the navigation
bar (and status bar) to reappear and remain visible. The user
interaction causes the flags to be be cleared.

看起来这可能是一个问题。 我想检查一下是否有效,但我可以使用软键获得一个设备。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM