码迷,mamicode.com
首页 > 其他好文 > 详细

EditText 单击无法弹出软键盘

时间:2014-08-22 17:57:39      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:edittext 无法弹出软键盘

      EditText是android系统自带的控件,通过单击,系统会自动调用当前输入法的软键盘,但是有时候却会出现edittext无法弹出软键盘的情况。

     说说我目前遇到这种情况的环境。本人在创建一个装着listview的菜单fragment,右边是相应的每个listitem对于的内容,用另一个fragment来包容一些带有edittext控件的布局。

在一开始单击edittext还是正常的,但是当滑动listview的时候,再次单击edittext,居然没有弹出相应的软键盘。这个问题困扰了我许久,因为edittext也没有提供相应调用软键盘的接口,所以排查起来非常困难。

查阅各种资料,最终通过一个办法解决了这个问题。

重写edittext控件,对其touch事件进行重写

@Override
public boolean onTouchEvent(MotionEvent event) {
if(MotionEvent.ACTION_DOWN == event.getAction()) {
clearFocus();  //在滑动设备列表的时候,editview无法弹出软键盘
}
return super.onTouchEvent(event);
}

注意这里要判断event是属于按下动作,否则的话由于edittext很敏感会导致多次调用clearFocus()。然后就是对每次触摸事件都清除一次焦点。这样无论怎么滑动listview,edittext都能正常的弹出软键盘。

具体的原因本人了解的不深,多次尝试后获得的结论,有没有高人能解释下这个现象帮助跟多的人感激不尽。虽然写作粗糙,但是网上有关这方面的资料少之又少,写作此文只是为遇到相同问题的朋友提供一个引子,有更好解决这个问题的可以留言评论。

EditText 单击无法弹出软键盘

标签:edittext 无法弹出软键盘

原文地址:http://blog.csdn.net/lgj452555712/article/details/38758387

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!