ListView点击事件无效或item点击事件无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ListView点击事件无效或item点击事件无效相关的知识,希望对你有一定的参考价值。

参考技术A 我们在开发过程中可能会遇到点击ListView或者RecyclerView的点击事件无效,可能就是因为item中含有Button、CheckBox等控件,它们会抢占该item本身的焦点,导致ListView本身点击事件失效,解决方式一般有3种,下边我们就来看具体有哪3种解决方式。

1>:把Button、CheckBox替换为 TextView、ImageView;
2>:设置Button、CheckBox的focuable 为false;
3>:设置ListView的item的根布局android:descendantFocusability="blocksDescendants",一般推荐第三种,意思是ListView的item下边所有的子控件都不能获取焦点。

android:descendantFocusability的值有3种,其中ViewGroup指的是设置这个属性的View,在这里就指的是ListView的item的根布局:

ListView setOnItemClickListener无效原因分析

如果在ListViewItem中有Button或者Checkable的子类控件的话,那么默认focus是交给了子控件,而ListView的Item能被选中的基础是Item本身

能够获取Focus,所以点击Item无法获取点击响应。可以通过以下两种方法之一进行解决:

1、在button、checkbox对应的view处加上

android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"

 

2、在Item处最多层添加属性

android:descendantFocusability="blocksDescendants"

 

以上是关于ListView点击事件无效或item点击事件无效的主要内容,如果未能解决你的问题,请参考以下文章

Android中Listview点击item不变颜色以及设置listselector 无效

解决element-ui 下拉el-dropdown-item添加点击事件@click无效

vue中使用轮播图插件carousel,克隆的图片点击事件无效的解决办法

如何在ListView中设置item的点击事件

给Listview里面Item里的每一个控件怎么设定点击事件

C#listview 添加的item怎么添加点击事件