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

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

概述在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布局和自定义adapter了,一般是继承于BaseAdapter,示例代码见下方。写ListView的点击

在平常的开发过程中,我们的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点击事件失效的快速解决方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1148134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存