600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Android 隐藏 显示软键盘方法

Android 隐藏 显示软键盘方法

时间:2019-07-23 11:22:02

相关推荐

Android 隐藏 显示软键盘方法

隐藏软键盘的终极方法:

public classSoftKeyboardUtil{/*** 隐藏软键盘(只适用于Activity,不适用于Fragment)*/public static void hideSoftKeyboard(Activity activity) {View view = activity.getCurrentFocus();if (view != null) {InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);}}/*** 隐藏软键盘(可用于Activity,Fragment)*/public static void hideSoftKeyboard(Context context, List<View> viewList) {if (viewList == null) return;InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);for (View v : viewList) {inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);}}}

那 SoftKeyboardUtil 第二个方法的List<View> viewList参数是什么, viewList 中需要放的是当前界面所有触发软键盘弹出的控件。 比如一个登陆界面, 有一个账号输入框和一个密码输入框, 需要隐藏键盘的时候, 就将两个输入框对象放在 viewList 中, 作为参数传到 hideSoftKeyboard 方法中即可。

如下方法会弹出的隐藏,隐藏的弹出

public static void hideKeyboard() {InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);}

详细见API:

\android-sdk\sources\android-26\android\view\inputmethod\InputMethodManager.java

Android 手动显示和隐藏软键盘

/changsimeng/article/details/72853760

1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘

3、调用隐藏系统默认的输入法

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this

.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); //(WidgetSearchActivity是当前的Activity)

4、获取输入法打开的状态

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); boolean isOpen = imm.isActive();//isOpen若返回true,则表示输入法打开

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。