Android listview的item点击事件怎么失效了
展开全部
在android里面,点击屏幕之后,点击事件会根据你的布局来进行分配的,当你的ListView里面增加了button之后,点击事件第一优先分配给你listView里面的button。
所以你的点击Item就失效了,这个时候你就要根据你的需求,是给你的item的最外层layout设置点击事件,还是给你的某个布局元素添加点击事件了。
如果你点击的时候涉及到一些值的问题,可以放到元素的tag中存储,到Oclick事件中再拿出来用。
如果我的回答没帮助到您,请继续追问。
所以你的点击Item就失效了,这个时候你就要根据你的需求,是给你的item的最外层layout设置点击事件,还是给你的某个布局元素添加点击事件了。
如果你点击的时候涉及到一些值的问题,可以放到元素的tag中存储,到Oclick事件中再拿出来用。
如果我的回答没帮助到您,请继续追问。
展开全部
对于你这种情况,我估计是因为你的ListView的item里面有类似Button,或ImageButton之类的,会抢掉ListView的焦点的控件,如果真是这种情况,那就在你的item的布局的根节点处加上 android:descendantFocusability="blocksDescendants"这个属性,其作用是阻止子控件抢占焦点,这样你的ListView就可以点击了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-12-08 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
如果ListView中的单个Item的view中存在checkbox,button等view,会导致ListView.setOnItemClickListener无效,事件会被子View捕获到,而ListView无法捕获处理该事件,主要原因就是焦点被listview中的checkbox等控件占有了
解决方法:在itme的视图中的checkbox、button对应的view处加
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
解决方法:在itme的视图中的checkbox、button对应的view处加
android:focusable="false"
android:clickable="false"
android:focusableInTouchMode="false"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
原因多半是由于在自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。
这时候就可以使用descendantFocusability来解决啦,API描述如下:
android:descendantFocusability
Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.
Must be one of the following constant values.
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
通常用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了
这时候就可以使用descendantFocusability来解决啦,API描述如下:
android:descendantFocusability
Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.
Must be one of the following constant values.
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
通常用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询