自定义Dialog中点击EditText无法弹出软键盘的问题

今天遇到一个狗血的bug。就是我自定义一个dialog。。。前面自定义的时候都是没有EditText的,就是仅仅做个提示框。然后要做一个带有EditText的dialog。。。欧克,也很顺利,在Genymotion上跑地也很欢快。。。但是真机上一试,发现无法弹出系统自带的键盘了。。。获取不到焦点啊,奔溃

1、打开Genymotion上面自带的系统软键盘
首先你要打开Oracle VM VirtualBox,关闭或者暂停当前的虚拟机
这里写图片描述
然后:
这里写图片描述
最后勾选Use Virtual Keyboard for text input选项就可以了
这里写图片描述

2、有了软键盘后,问题就浮出水面了,发现在电脑上可以输入,却弹不出软键盘进行输入。。。。方法一,把alertDialog换成Dialog就可以了

Dialog dialog = new Dialog(mContext);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
//去掉头部,不然会有黑影
dialog.setCancelable(false);//点击dialog外面不会消失
dialog.show();

//我之前的写法是
AlertDialog dialog = new AlertDialog.Builder(mContext).create();
dialog.setCancelable(false);
dialog.show();

总结:这个方法一试,你可能会兴奋,觉得解决了。但是仔细看,如果你给了dialog背景图片是圆角效果的,就会很明显地看到有黑影子。。。

2、在自己重写的dialog.show()方法中使用如下代码:

public void show() {
Window window = dialog.getWindow();
window.setContentView(R.layout.view_web_up_dialog);
window.setWindowAnimations(R.style.x62_ui_alertdialog);
。。。。。。
//弹出系统键盘
window.clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
}

总结:好,可以了。而且你统一了整个布局风格。就只是差了一句代码啊window.clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM)。记录下,报备。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值