1. 程式人生 > >鍵盤彈出後又消失的問題

鍵盤彈出後又消失的問題

問題:三星手機,帶有底部選單欄自動隱藏的功能,當開啟此項功能時,在Activity中點選開啟鍵盤時,會導致鍵盤彈出後,馬上消失掉;

解決:

方法一:設定手機總是顯示底部選單欄,問題解決;

方法二:當進入該Activity時,手動隱藏底部選單欄:

在Activity的onCreate()和onWindowFocusChanged()中隱藏底部選單欄:

/**
 * 隱藏底部底部導航欄
 */
public void hideNavigationBar() {
    Window window;
    window = getWindow();
    WindowManager.LayoutParams params = window.getAttributes();
    params.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE|View.SYSTEM_UI_FLAG_FULLSCREEN;
    window.setAttributes(params);

    int uiFlags = 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

    if (android.os.Build.VERSION.SDK_INT >= KITKAT) {
        uiFlags |= 0x00001000;    //SYSTEM_UI_FLAG_IMMERSIVE_STICKY: hide navigation bars - compatibility: building API level is lower thatn 19, use magic number directly for higher API target level
    } else {
        uiFlags |= View.SYSTEM_UI_FLAG_LOW_PROFILE;
    }

    getWindow().getDecorView().setSystemUiVisibility(uiFlags);
}