Android开发 解决AlertDialog中的EditText无法调出输入法的问题
2014-04-16 17:14
603 查看
原文链接 http://www.pocketdigi.com/20120906/911.html
在AlertDialog中使用自定义的View,如果View中有EditText,在上面点击,默认是跳不出软键盘的,不是焦点的问题。
解决方法,有两种,一是把AlertDialog换成Dialog,但这么一来,对话框的最外层会多出一个框,顶部还会空几十个DP,当然可以用setBackgroundDrawable(new ColorDrawable(0))把背景设为透明,隐藏掉边框,但是上面空着的几十个DP还在,对话框就不是在屏幕居中了。
代码:
最好的办法是第二种:
在调用show方法前先调用setView(layout),show后再调用window.setContentView(layout),两个Layout布局应该是相同的。
至于原因,暂时不明,但是确实解决了问题,在EditText上点击,可以调出软键盘,输入法了。
2013年1月6日:第一种方法的BUG,解决方法:
使用自定义的Style:
在AlertDialog中使用自定义的View,如果View中有EditText,在上面点击,默认是跳不出软键盘的,不是焦点的问题。
解决方法,有两种,一是把AlertDialog换成Dialog,但这么一来,对话框的最外层会多出一个框,顶部还会空几十个DP,当然可以用setBackgroundDrawable(new ColorDrawable(0))把背景设为透明,隐藏掉边框,但是上面空着的几十个DP还在,对话框就不是在屏幕居中了。
代码:
Dialog ad = new Dialog(context); ad.show(); Window window = ad.getWindow(); window.setBackgroundDrawable(new ColorDrawable(0)); window.setContentView(R.layout.cancel_sos_dialog);
最好的办法是第二种:
AlertDialog ad = new AlertDialog.Builder(context).create(); ad.setView(ManagerDialogLayout_.build(context,ad)); ad.show(); Window window = ad.getWindow(); window.setContentView(ManagerDialogLayout_.build(context,ad));
在调用show方法前先调用setView(layout),show后再调用window.setContentView(layout),两个Layout布局应该是相同的。
至于原因,暂时不明,但是确实解决了问题,在EditText上点击,可以调出软键盘,输入法了。
2013年1月6日:第一种方法的BUG,解决方法:
使用自定义的Style:
<style name="CustomDialogStyle" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:backgroundDimAmount">0.6</item> </style>
Dialog ad = new Dialog(context,R.style.CustomDialogStyle);
相关文章推荐
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题 .
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
- Android开发 解决AlertDialog中的EditText无法调出输入法的问题
- Android AlertDialog有EditText无法弹出输入法的解决
- android开发之解决PopWindow中EditText无法复制粘贴问题
- Android AlertDialog有EditText无法弹出输入法的解决
- Android AlertDialog有EditText无法弹出输入法的解决
- 【 Android】自定义的AlertDialog中的EditText无法调用输入法问题解决
- Android开发:EditText和ListView或GridView同时使用,输入法自动跳出来的 解决办法
- android中edittext插入QQ表情后,无法使用输入法键盘的退格键(删除键)删除表情的解决方法
- 关于AlertDialog中嵌入Edittext无法弹出输入法的问题解决
- EditText的输入法显示、隐藏和AlertDialog中的EditText无法调出输入法的问题
- Android开发之旅一PopupWindow写的一个基类和PopupWindow中EditText输入法的问题
- EditText焦点问题 Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- android开发中有EditText,当输入时输入法会把底部的导航栏顶上去。如何解决?
- 【Android开发那点破事】Android EditText不弹出输入法焦点问题
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法