”Dialog中包含EditText“时,控制输入法的”隐藏/自动弹出“操作
来源:互联网 发布:centos 防止暴力破解 编辑:程序博客网 时间:2024/06/09 16:13
实战情景需求: 需要在EditText聚焦时自动弹出输入法,或者隐藏输入法。
内容描述:
- 1.输入法弹出,一般没什么问题。但是有没发自动弹出的情况如:弹出的对话框Dialog里有edittext。
解决方法:
一、配置AndroidManifest文件
在有edittext的activity中,配置android:windowSoftInputMode,输入法自动调节大小。
如登录界面,有两个EditText和按钮,当用户点击输入用户名时,自动弹出输入法,将布局顶上去,adjustResize可以让输入法不遮住edittext输入框。
<activityandroid:name=".activity.SoundRecorder" android:clearTaskOnLaunch="false"android:configChanges="orientation|screenSize|keyboardHidden"android:launchMode="singleTask"android:windowSoftInputMode="adjustResize"android:screenOrientation="portrait">
二、设置activity启动的时候输入法默认不开启
- 如果设置成:android:windowSoftInputMode=”stateVisible|adjustPan” ,那么启动后就马上显示输入法。
- activity启动的时候,editext不聚焦,输入法是不会弹出的,输入的时候点击就会弹出输入法。
为了不一启动就打开,可以在onCreate方法中,设置:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
三、对话框有EditText,强制显示输入法
弹出的对话框dialog里有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); }
四,其他相关方法
import android.content.Context;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;//打开或关闭软键盘public class KeyBoardUtils{ /** * 打卡软键盘 * * @param mEditText输入框 * @param mContext上下文 */ public static void openKeybord(EditText mEditText, Context mContext) { InputMethodManager imm = (InputMethodManager) mContext .getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); } /** * 关闭软键盘 * * @param mEditText输入框 * @param mContext上下文 */ public static void closeKeybord(EditText mEditText, Context mContext) { InputMethodManager imm = (InputMethodManager) mContext. getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); }}
总结
过程比较简单。也可以配置EditText,设置是否获得焦点,清除焦点:edit.clearFocus();
EditText禁止、不弹出软件键盘:
edit.setInputType(InputType.TYPE_NULL);。activity一启动默认弹出输入法:
android:windowSoftInputMode=”stateVisible|adjustPan”
0 0
- ”Dialog中包含EditText“时,控制输入法的”隐藏/自动弹出“操作
- dialog中含有edittext弹出时自动弹出输入法
- Android中EditText隐藏/自动弹出输入法的问题
- 自定义dialog中Edittext自动弹出输入法问题
- Dialog中EditText不能自动弹出输入法解决方法
- Dialog 中有EditText时,打开自动弹出软键盘,关闭时隐藏软键盘
- 自定义dialog中EditText无法弹出输入法
- EditText 获取焦点时 输入法弹出 点击EditText以外的部分 输入法隐藏
- 解决Dialog中有EditText时无法自动弹出输入的问题
- AlertDialog中有EditText时(getwindow加载)自动弹出输入法的解决办法
- Dialog中有EditText无法弹出输入法解决方法
- android中dialog中的EditText无法弹出输入法对话框
- 自定义AlertDialog,以及解决自定义Dialog中EditText不能弹出输入法的问题
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- 关于VO、DTO、DO、PO的概念、区别和用处
- Linux命令之"which"
- Servlet-request之与请求头相关的方法
- Java设计模式之建造者模式
- 自定义scrollview 回弹效果
- ”Dialog中包含EditText“时,控制输入法的”隐藏/自动弹出“操作
- MyBatis 增强工具包
- 统一用户认证和单点登录解决方案
- Java SWT容器
- curl-7.50.3.tar.gz在linux上的下载安装移植
- Java Web 之过滤器Filter详解
- 那些操作数据库小知识点儿
- css让元素居中的8个方法总结
- Timer定时器详解