关于自定义dialog的EditText无法弹出软键盘的bug的解决方案
来源:互联网 发布:数据恢复高级技术pdf 编辑:程序博客网 时间:2024/06/05 06:03
转载请标明出处
http://blog.csdn.net/mohan6/article/details/78641769本文作者:【默寒的博客】
上周写了一个自定义dialog,自定义布局如下:
问题1: 弹 dialog的activity的布局中,有个editText,输完信息点“确定”弹出上面的dialog。
但是软键盘没有关闭,被弹出的dialog覆盖掉了。
解决的方法:在弹出dialog弹出之前,把软键盘关闭。
/** * 关闭键盘 * * @param mContext * @param view */ public static void closeKeyboard(Context mContext, View view) { try { InputMethodManager imm = (InputMethodManager) mContext .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } catch (Exception e) { } }问题2:自定义dialog中editText,不弹软键盘。解决办法:
//只用下面这一行弹出对话框时需要点击输入框才能弹出软键盘 dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); //加上下面这一行弹出对话框时软键盘随之弹出 dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);延伸:系统dialog添加editText,并对editText的margin进行设置。
final EditText editText = new EditText(mContext);// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(AppUtils.px2dip(mContext, 200f), AppUtils.px2dip(mContext, 50));// params.setMargins(AppUtils.px2dip(mContext, 10), AppUtils.px2dip(mContext, 10), AppUtils.px2dip(mContext, 10), AppUtils.px2dip(mContext, 10));// editText.setLayoutParams(params); Drawable drawable = getResources().getDrawable(R.drawable.shape_edti_background); editText.setBackground(drawable); editText.setInputType(InputType.TYPE_CLASS_NUMBER);//数字 editText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(6)}); //最大输入长度 editText.setTransformationMethod(PasswordTransformationMethod.getInstance()); //设置为密码输入框 Dialog dialog = new AlertDialog.Builder(mContext) .setMessage("请输入密码") .setView(editText, 30, 10, 30, 0) .setCancelable(false) .setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String et = editText.getText().toString().trim(); if (TextUtils.isEmpty(et)) { ToastUtil.show(getApplication(), "密码为空"); } } }) .create(); dialog.setCanceledOnTouchOutside(false); dialog.show();通过以下代码设置margin,没起作用。原因未知,如果有网友了解什么原因,请留言,互相学习。LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(AppUtils.px2dip(mContext, 200f), AppUtils.px2dip(mContext, 50));// params.setMargins(AppUtils.px2dip(mContext, 10), AppUtils.px2dip(mContext, 10), AppUtils.px2dip(mContext, 10), AppUtils.px2dip(mContext, 10));// editText.setLayoutParams(params);最终我用的解决办法:dialog.setView(editText, 30, 10, 30, 0)
阅读全文
0 0
- 关于自定义dialog的EditText无法弹出软键盘的bug的解决方案
- 自定义Dialog中点击EditText无法弹出软键盘的问题
- 解决自定义Dialog无法弹出软键盘的问题
- 自定义AlertDialog中的EditText无法弹出软键盘的解决
- 安卓开发 自定义Dialog的问题总结之---Title背景为黑问题、edittext无法弹出软键盘
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- 自定义dialog及布局(含EditText、Spinner)的输入设置和软键盘弹出设置
- 设置默认Dialog里面的EditText不弹出软键盘
- Android自定义dialog中的EditText无法弹出键盘的解决
- Android自定义dialog中的EditText无法弹出键盘的解决
- Android自定义dialog中的EditText无法弹出键盘的解决
- AlertDialog 自定义布局 以及 EditText 无法弹出软键盘的解决
- 解决在自定义AlertDialog中EditText无法弹出软键盘的问题
- 关于AlertDialog里面的EditText无法弹出软键盘的解决方法
- Nginx之rewrite配置
- Tomcat结构及处理用户请求
- 云星数据---Scala实战系列(精品版)】:Scala入门教程021-Scala实战源码-Scala 子类对象
- idea编译java文件错误 非法字符: '\ufeff'
- HTML5-音频和视频的处理
- 关于自定义dialog的EditText无法弹出软键盘的bug的解决方案
- 去除eslint
- 新建项目
- 安利一个简单好玩的爬虫
- Hbase scan通过rowkey条件查询
- MySQL 5.7 windows 免安装版 配置文件 案例
- HttpClient上传Post请求和JSON请
- 【NOIp 2017】小凯的疑惑(置顶)
- java 对象的this引用