Android中EditText隐藏/自动弹出输入法的问题
16lz
2022-05-03
有些时候我们的应用需要在EditText聚焦时自动弹出输入法,或者隐藏输入法,关于输入法弹出,一般不会有什么问题。但是,有一些情况输入法是没发自动弹出的,比如弹出的对话框里有edittext,介绍一些常用的用法。
一,配置AndroidManifest文件
通用做法,在有edittext的activity中,配置
android:windowSoftInputMode
,让输入法自动调节大小。
比如登录界面,有两个EditText和按钮,当用户点击输入用户名时,自动弹出输入法,将布局顶上去,adjustResize可以让输入法不遮住edittext输入框。
<activity android:name="com.oair.oair_client.LoginActivity" android:label="@string/title_activity_login" android:launchMode="singleTask" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="adjustResize"/>
三,设置activity启动的时候输入法默认不开启
activity启动的时候,editext不聚焦,输入法是不会弹出的,输入的时候点击就会弹出输入法。
也可以在onCreate方法中,设置:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
三,对话框有EditText,强制显示输入法
弹出的对话框里有edittext,show方法与输入法的现实可能会冲突,没发自动弹出的,所以可以这样:
//显示对话框之后,用handler延时显示输入法dialog_rename.show(); new Handler().postDelayed(new Runnable() { @Override public void run() { showInputMethod(); } },100); } private void showInputMethod() { //自动弹出键盘 InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); //强制隐藏Android输入法窗口 // inputManager.hideSoftInputFromWindow(edit.getWindowToken(),0); }
四,输入法相关方法
/** * 显示键盘 * @param context * @param view */public static void showInputMethod(Context context, View view) { InputMethodManager im = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); im.showSoftInput(view, 0);} //隐藏虚拟键盘 public static void HideKeyboard(View v){ InputMethodManager imm = ( InputMethodManager) v.getContext( ).getSystemService(Context.INPUT_METHOD_SERVICE); if (imm.isActive()) { imm.hideSoftInputFromWindow( v.getApplicationWindowToken() , 0 ); } }
总结
应用起来比较简单,不再赘述。也可以配置EditText,设置是否获得焦点,清除焦点:edit.clearFocus();
EditText不弹出软件键盘:
edit.setInputType(InputType.TYPE_NULL);
。
activity默认弹出输入法:
android:windowSoftInputMode="stateVisible|adjustPan"
欢迎交流,杜乾,Dusan,Q 291902259。
更多相关文章
- afinal logoAndroid的快速开发框架 afinal
- Android自定义对话框Dialog以及主题和样式
- Android中弹出对话框的实现
- OnClick与android:focusableInTouchMode="true"
- Android开发实例详解之IMF(Android(安卓)SDK Sample—SoftKeyboar
- Android(安卓)Alert Dialog解决点击按钮对话框不关闭的问题
- android中的键盘处理
- 我的android开发之路
- 解决AndroidStudio连不上Android设备真机的问题