按下后退按钮后隐藏 Android 键盘
Hiding Android Keyboard after Pressing Back Button
我正在使用此代码隐藏键盘:
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
这很好用。但是,我注意到一个错误。如果我最初使用我的 phone 物理后退按钮隐藏了键盘,然后我调用了上面的方法,键盘将被显示而不是隐藏。换句话说,似乎 Android 系统未能检测到我使用后退按钮隐藏了键盘。它不是隐藏键盘,而是显示键盘。如何解决?
//hide-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
//show-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
只需更改
中的这一行
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
至
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
在当前状态的基础上使用切换改变状态。
如果它被隐藏,它将显示,反之亦然。
这是因为你在切换键盘。试试这个:
InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
在你的Activity
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);
}
我正在使用此代码隐藏键盘:
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
这很好用。但是,我注意到一个错误。如果我最初使用我的 phone 物理后退按钮隐藏了键盘,然后我调用了上面的方法,键盘将被显示而不是隐藏。换句话说,似乎 Android 系统未能检测到我使用后退按钮隐藏了键盘。它不是隐藏键盘,而是显示键盘。如何解决?
//hide-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
//show-keyboard:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
只需更改
中的这一行 imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
至
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
在当前状态的基础上使用切换改变状态。 如果它被隐藏,它将显示,反之亦然。
这是因为你在切换键盘。试试这个:
InputMethodManager inputManager = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
在你的Activity
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);
}