没有合适的资源?快使用搜索试试~ 我知道了~
Android 中ListView的Item点击事件失效的快速解决方法
0 下载量 78 浏览量
2021-01-20
09:17:24
上传
评论
收藏 43KB PDF 举报
温馨提示
试读
1页
在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布局和自定义adapter了,一般是继承于BaseAdapter,示例代码见下方。写ListView的点击事件时OnItemClickListener,onItemClick方法没有执行,导致ListView中Item条目点击事件失效,而Item中的View点击事件可以在getView方法中进行处理。导致整个Item点击失效的原因多半是由于在【你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Chec
资源详情
资源评论
资源推荐
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 中RecycleView实现item的点击事件
Android RecyclerView的Item点击事件实现整理Android XRecyclerView最简单的item点击事件处理
weixin_38527978
- 粉丝: 5
- 资源: 900
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0