当前位置: 首页 > 编程笔记 >

Android 中ListView的Item点击事件失效的快速解决方法

袁华清
2023-03-14
本文向大家介绍Android 中ListView的Item点击事件失效的快速解决方法,包括了Android 中ListView的Item点击事件失效的快速解决方法的使用技巧和注意事项,需要的朋友参考一下

在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布局和自定义adapter了,一般是继承于BaseAdapter,示例代码见下方。写ListView的点击事件时OnItemClickListener,onItemClick方法没有执行,导致ListView中Item条目点击事件失效,而Item中的View点击事件可以在getView方法中进行处理。导致整个Item点击失效的原因多半是由于在【你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件)】,此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。

这时候就可以使用descendantFocusability来解决,其中descendantFocusability对应的属性有3个

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

beforeDescendants:viewgroup会优先其子类控件而获取到焦点

afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了
我遇到的情况时item布局有一个ImageButton按钮,因为这个组件抢事件能力强,根button差不多;因此运行后,listviewitem点击失效。使用上边方式解决问题;当然也可以改变imagebutton为imageview也可以解决这个问题。

 类似资料:
  • 本文向大家介绍Android中ListView的item点击没有反应的解决方法,包括了Android中ListView的item点击没有反应的解决方法的使用技巧和注意事项,需要的朋友参考一下 如果stu_item.xml里面包括button或者checkbox等控件,默认情况下list的item会失去焦点,导致无法响应item的事件,最常用的解决办法是在stu_item.xml的布局文件中设置de

  • 本文向大家介绍Android ListView的Item点击效果的定制,包括了Android ListView的Item点击效果的定制的使用技巧和注意事项,需要的朋友参考一下 Android ListView的Item点击效果的定制           前言:           对于listview Android开发的朋友都知道用的很多,网上关于Android ListView的Item点击特

  • 本文向大家介绍iOS下Safari点击事件失效的解决方法,包括了iOS下Safari点击事件失效的解决方法的使用技巧和注意事项,需要的朋友参考一下 前言 本文主要给大家介绍了关于在iOS下Safari浏览器点击事件失效的相关解决方案,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body

  • 本文向大家介绍解决android Listview的item中最外层Margin失效的问题,包括了解决android Listview的item中最外层Margin失效的问题的使用技巧和注意事项,需要的朋友参考一下 1、在开发中发现这么一种现象: List中的Item是LinearLayout,这个Item的最外层,设置了margin属性。全部失效。 从图中可以看出, AbsListView的la

  • 本文向大家介绍Android中解决RecyclerView各种点击事件的方法,包括了Android中解决RecyclerView各种点击事件的方法的使用技巧和注意事项,需要的朋友参考一下 完美解决RecyclerView点击事件、长按事件、子项点击事件 自从Google推出了RecyclerView之后,便可以完全取代ListView,个人感觉唯一的美中不足是对于itemView的各种点击事件不够

  • 本文向大家介绍android的ListView点击item使item展开的做法的实现代码,包括了android的ListView点击item使item展开的做法的实现代码的使用技巧和注意事项,需要的朋友参考一下 本文介绍了android的ListView点击item使item展开的做法的实现代码,分享给大家,具体如下: 效果图: 原理是点击item的时候,重新measure list的各个item