彻底解决了,对话框点击外部消失,但键盘不消失的问题。对话框包含输入框编辑文本。当外部消失时,键盘并没有消失。原来有问题的代码如下:
后来发现mEditText.getWindowToken()的指针在缺失时是空。据估计,dialog在调用diissListener时已经回收了它的所有内部控件。所以我想到重写一个MyDialog来复制dissolve方法,如下所示:
@ overridepublicvoiddisse(){ View View = getCurrentFocus();if(view instance of TextView){ InputMethodManager mInputMethodManager =(InputMethodManager)get context()。getSystemService(上下文。输入_方法_服务);minputmethodmanager . hidesoftinputfromwindow(view . getwindowtoken(),InputMethodManager。结果_未改变_显示);} super . dissolve();}
图片如下:
在super . dissolve()之前,遍历对话框中的视图。如果是TextView的子类,getWindowToken(),然后隐藏键盘;
终于解决了这个疑难杂症,主要是网上资料少,所以很完美!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。