簡體   English   中英

按下返回按鈕后隱藏Android鍵盤

[英]Hiding Android Keyboard after Pressing Back Button

我正在使用以下代碼隱藏鍵盤:

InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);

這很好。 但是,我發現了一個錯誤。 如果最初使用手機的后退按鈕隱藏了鍵盤,則調用了上述方法,將顯示鍵盤而不是隱藏鍵盤。 換句話說,似乎Android系統未能檢測到我使用后退按鈕隱藏了鍵盤。 它不顯示鍵盤,而是顯示鍵盤。 如何解決呢?

只需更改此行

 imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);

 imm.hideSoftInputFromWindow(view.getWindowToken(), 0);

在使用切換時,根據當前狀態更改狀態。 如果隱藏,它將顯示,反之亦然。

//hide-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

//show-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

這是因為您要切換鍵盤。 嘗試這個:

InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

在您的活動中

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

或者您可以添加Androidmanifest.xml

<activity
    android:name=".views.activities.tile_details.TileDetailActivity"
    android:screenOrientation="portrait"
    android:theme="@style/TileDetails.AppTheme.Light"
    android:windowSoftInputMode="stateHidden" />

要么

public static void hideSoftKeyboard(View view, Activity activity) {
    InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM