自继承Dilog布局上的EditText不能调用软键盘问题
来源:互联网 发布:象过河软件免费版 编辑:程序博客网 时间:2024/06/05 12:36
先说解决方案:
解释:
@Override
public void show() {
super.show();
getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
}
(1)Dialog,Activity依赖于自己的Window
(2)软键盘也相对于是一个Dialog,也依赖于自己的window界面,
(3)其中,系统做了处理,activity的window是可以与dialog公用的,所以activity可以正常弹出键盘,
(4)通过AlertDialog.Builder(Context context, int themeResId).create()创建的dialog,并通过.setView(View view)方式更改布局的方法—默认下是可以与activity公用一个window,可以调用软键盘
(5)但是我们自己继承的Dialog在默认下是没有做任何设置的,由于自己继承的dialog,并不能和activity公用一个window,也不能与同属于dialog的软键盘公用一个,所以默认不能弹出,所以我们需要手动设置给自己的dialog的所在window设置相关的属性,让他允许与软键盘公用一个,记住一定是dialog的Window
(6)关键来了:getWindow()一定要是dialog的,并且在show()之后调用,如何不自定义show()方法,那么就要在使用dialog的地方,使用dialog.getWindow()
getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
希望能对大家有所帮助
- 自继承Dilog布局上的EditText不能调用软键盘问题
- android dialog edittext 软键盘问题
- android AlertDialog中EditText不弹出软键盘问题的解决方案 软键盘不出现
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- EditText焦点自动带出软键盘问题
- listview和edittext一起使用时弹出软键盘问题
- 关于在AlertDiaLog中的Edittext无法打开软键盘问题
- 解决ListView和 EditText焦点和软键盘问题
- ViewPager软键盘问题
- 软键盘问题汇总
- 软键盘问题
- h5软键盘问题
- activity 第一个获取焦点的组件是 EditText 时,开启这个activity 时就会自动弹出软键盘问题
- Android 软键盘问题总结
- android软键盘问题小记
- activity显示软键盘问题
- MySQL创建定时任务动态创建月表
- Java 8 ,第 3 部分
- AD服务器的搭建以及对python接口的集成
- MFC——各种RGB颜色的值
- CentOS系统安装Redis及Redis的PHP扩展
- 自继承Dilog布局上的EditText不能调用软键盘问题
- 音视频开发入门基础及视频会议即时通讯开源技术选择
- 使用axios时,解决provisional headers are shown问题
- Linux 防火墙开放特定端口 (iptables)
- 移动端
- onos1.11源码编译及运行总结
- Linux(Cent OS7)安装mysql5.7
- CXF安装和配置时出现Exception in thread "main" java.lang.UnsupportedClassVersionError:异常?
- Google地图上任意两个点的距离