昨天踩了个大坑,从下午折腾到现在。实现以下功能:
PopupWindow+ListView+OnItemClick点击无效-LMLPHP

popupWindow显示listview,listView OnItemClick点击后获取值。

由于重写listview 是有两部分 列表正文和右侧索引,都重写了onTouchEvent。出现此问题后,受此影响,解决思路偏向是OnTouchEvent自己消费掉OnClick事件,致使事件无法传递给ListView本身OnItemClik。在查阅资料后,发现自己大错特错。

首先事件传递是从父级传递给子级的,而本布局事件均发生在listview item内,子级无事件消费,不存在这个问题。

其次,排除item中有Button,weblink等控件致使listview失去焦点因素。

具体TouchEvent事件机制参阅这里

最后,测试。。发现PopupWindow没有获取到焦点。。

PopupWindow.setFocusable(true);

其他版本因素暂没测试。

05-02 02:00