需求:
这几天做项目遇见了一个需求,在listview的某一个item中包含一个editText,而其他地方都是Textview。在包含editText的item点击,弹出键盘,可以输入文字。其他包含TextView的item,点击,跳转或者弹popupwindow。
思路:
使用Textview 和EditText gone和显示来实现功能。
问题:
点击editText,键盘弹出,又立马消失。
解决过程:
调试过程,发现listview的适配器的getView 方法重复走了很多次,且远多于item的条数。同时如果键盘弹出不会遮盖listview 那么键盘显示正常,输入正常。加之借鉴网上经验得知是由于键盘导致listview的重绘,重回过程中,键盘又一次失去焦点。
解决方法:
listview的height设置为match_parent or fill_parent 。然后子getView 方法里面申请焦点。就完美解决。