首页 > 代码库 > Android中onItemClick事件不响应
Android中onItemClick事件不响应
最近在做一个点菜的Android应用,要用到ListView,我希望可以通过ListView中的Button对点过的菜进行操作如下图
我希望通过点击加减改变菜品的总数量和左边所显示的菜品总价格
可是当我使用onItemClick方法时发现ListView不响应。。
这实在很坑
在网上找了很久看了无数篇的博文,解决方案大体以下两种:
1.将ListView的Item Layout中的所有子控件focusable属性设置为false
2.将item layout的根控件设置属性(推荐轻量级特别是修改别人的代码)
android:descendantFocusability=”blocksDescendant”
这样Item Layout就屏蔽了所有子控件获取Focus焦点的权限,不需要针对Item Layout中的每一个控件重新设置focusable属性
原因在于:
若你的item中有button或者checkbox等控件,默认情况下焦点focus是最先交给这些子控件,而ListView的Item能被选中的基础是它能获取Focus焦点,所以,我们可以通过将ListView中Item中包含的所有控件的focusable属性设置为false,这样ListView的Item就自动获得了Focus焦点的权限,也就可以被选中了,同时也会响应onItemClickListener中的onItemClick()方法。
还没结束,我做了无数尝试之后依然不响应。。
最后发现问题的原因在于ListView的样式文件中,我使用了HorizontalScrollView
而使用该种布局会导致以上的两种解决方案均失效。。
原因不明,假如有大神看到本菜鸟的博文,希望能指点一二。。
还有在ListView的样式文件的根布局假如使用了match_parent属性
那么在你的整体展示的<ListView/>这个标签中必须使用这个属性。。
否则就会报错。。
Android中onItemClick事件不响应
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。