按下后退按钮后隐藏Android键盘

时间:2016-02-04 12:28:59

标签: android android-softkeyboard

我正在使用此代码隐藏键盘:

@project.uuid

这很有效。但是,我发现了一个错误。如果我最初使用我的手机物理后退按钮隐藏了键盘,那么我调用上面的方法,键盘将显示而不是隐藏。换句话说,似乎Android系统未能检测到我使用后退按钮隐藏了键盘。它不显示键盘,而是显示键盘。怎么解决这个问题?

4 个答案:

答案 0 :(得分:4)

只需从

更改此行
__FUNCTION__

 imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);

当使用切换时,会根据当前状态更改状态。 如果隐藏它将显示,反之亦然。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

这是因为你正在切换键盘。试试这个:

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

答案 3 :(得分:0)

在您的活动中

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);
}