listview的item长按事件无效

来源:互联网 发布:js如何获取子元素内容 编辑:程序博客网 时间:2024/05/22 09:44
问题描述:
listview中子条目的布局是包含一个textview和imageview,对于imageview在adapter中有设置onClickListener事件,逻辑是进行界面跳转,之后加了新需求,长按每条做删除操作,发现长按textview部分是正常的,但是长按imageview却无效,即没走删除逻辑,而是在手抬起后走界面跳转逻辑

解决方法:
在adapter中给imageview加了长按事件,在其中处理删除逻辑,如果处理与界面有关的话,可以在adapter中加一个接口回调,让activiy中监听事件,在adapter的长按事件中调用此回调方法,最终交于activity处理。

解决过程:
在网上有搜类似问题,解决方案大致为以下两种:
一、在onItemLongClickListener中返回true,但是我原先就是返回的true,无效,这个是适用于view触摸机制,保证在处理了长按事件后不会再响应其他触摸事件
二、让控件不获取焦点,并在子条目布局的根布局中添加属性,这个其实适用于,当item的布局中有类似button这种会抢占焦点,导致listview的子条目点击事件无效的情况
android:descendantFocusability="blocksDescendants"

阅读全文
1 0