簡體   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