关于listview中onItemClick点击事件失效的解决方法
2017-10-24 13:53
423 查看
在平常的开发过程中,我们的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也可以解决这个问题。
这时候就可以使用descendantFocusability来解决,其中descendantFocusability对应的属性有3个
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了
我遇到的情况时item布局有一个ImageButton按钮,因为这个组件抢事件能力强,根button差不多;因此运行后,listviewitem点击失效。使用上边方式解决问题;当然也可以改变imagebutton为imageview也可以解决这个问题。
相关文章推荐
- listview setOnItemClickListener 点击事件失效的解决方法
- 关于ListView触摸事件和点击Item事件冲突解决方法
- ListView点击事件失效(item里面有button按钮控件)解决方法
- Android 中ListView的Item点击事件失效的快速解决方法
- 关于ListView触摸事件和点击Item事件冲突解决方法
- textview 中处理spannable使得ListView的点击事件失效的解决方法
- Recyclerview或Listview实时刷新,item点击事件失效的解决方法
- ListView点击事件失效(item里面有button按钮控件)解决方法
- SlidingMenu+ViewPage+ListView嵌套(类似网易 ) ListView点击事件失效冲突问题解决
- 关于listView中的自定义以后不响应onItemClick事件的解决方法
- 关于使用DrawerLayout建立侧滑菜单时,下层布局依然可响应点击事件的解决方法
- 今天使用PullToRefreshListView时遇到Item点击事件失效问题,特此记下解决办法
- ListView的Item上有个按钮 ,Item不能响应点击事件的解决方法
- Listview点击事件失效问题解决以及每个Item 子控件获取focus
- 关于ListView的点击事件失效的问题
- 关于input的file框onchange事件触发一次失效的新的解决方法
- 我的Android进阶之旅------>Android中ListView中嵌套(ListView)控件时item的点击事件不起作的问题解决方法
- 解决ScrollView中嵌套ListView滚动效果冲突问题 & ListVIew点击事件失效
- Android ListView item 点击事件失效问题的解决
- CheckBox在ListView中导致其点击事件不会被触发解决方法