[英]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.