AlertDialog中EditText不能获取焦点以及不宽度不能自动铺满的完美解决方案
2015-04-14 09:58
344 查看
问题分析:因为 dialog的Attributes使用的默认的,其中一个属性就是:flags ,就是这个属性导致不能获取焦点,默认的是FLAG_NOT_FOCUSABLE,故名思义不能获取输入焦点,所以修改这个属性就行了。具体代码如下:
效果如下:
AlertDialog dialog = new AlertDialog.Builder(context).create(); dialog.setCanceledOnTouchOutside(true); dialog.show(); Window window = dialog.getWindow(); window.setContentView(R.layout.dialog_postmsg); LayoutParams params = window.getAttributes(); params.width = LayoutParams.MATCH_PARENT;//如果不设置,可能部分机型出现左右有空隙,也就是产生margin的感觉 params.height = LayoutParams.WRAP_CONTENT; params.softInputMode = LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE;//显示dialog的时候,就显示软键盘 params.flags = LayoutParams.FLAG_DIM_BEHIND;//就是这个属性导致不能获取焦点,默认的是FLAG_NOT_FOCUSABLE,故名思义不能获取输入焦点, params.dimAmount=0.5f;//设置对话框的透明程度背景(非布局的透明度) window.setAttributes(params);
效果如下:
相关文章推荐
- AlertDialog中EditText不能获取焦点以及不宽度不能自动铺满的完美解决方案
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- Android中EditText获取焦点和不自动获取焦点以及改变光标颜色
- 如何让EditText不能自动获取焦点(转)
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- EditText获取焦点显示输入法时布局自动改变的解决方案
- 让EditText不能自动获取焦点
- Android 如何让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- 让EditText不能自动获取焦点
- Android Dialog 中的EditText自动获取焦点弹出软键盘
- 如何不让EditText不自动获取焦点以及EditText只能输入数字