当Listview中的item与其中的Button/CheckBox的点击事件冲突时……
2017-09-30 10:59
381 查看
在平常开发中相信很多小伙伴都遇到过ScrollView嵌套Listview,ListView的item布局UI中不仅只是展示功能的UI,还有一些是可以点击的,比如:Button按钮,CheckBox多选控件,多布局的LinearLayout等等……,那么当父控件中的子控件也有自己的点击监听事件,这个时候两者会发生冲突,无法达到自己想要的状态,那么该如何解决呢?
我今天就给大家讲解一下我在开发中遇到的ListView嵌套Button时点击事件冲突解决方法和ListView嵌套CheckBox时点击事件冲突解决方法,其他的控件基本都可以类比着来(先都按这两种方法解决,如果不行再网搜其他方法,目前这两种方法足够本人使用了)。
一、ListView 嵌套 Button 时,点击事件冲突解决方法
当listview中的item与button的点击事件冲突时,需要给listview的item和button分别加一个属性:
item的根布局(如:LinearLayout、RelativeLayout……)中:android:descendantFocusability="blocksDescendants"
Button中:android:focusable="false"
这样就可以分别设置两者(ListView 和 Button )的点击事件了,当点击的是Button时,就响应的是Button的监听,
当点击Item时,响应的就是ListView的监听。
二、ListView 嵌套 CheckBox时,点击事件冲突解决方法
当listview中的item与CheckBox的点击事件冲突时,需要给listview的CheckBox设置如下属性:
CheckBox中:
①android:focusable="false"
②android:focusableInTouchMode="false"
③android:clickable="false"
而item中不用设置其他属性,当点击item时,写逻辑改变CheckBox的状态即可。
这个是将CheckBox的点击事件监听抛给了父控件Item,所以让其失去焦点并不可点,这对于想实现列表选择比较有用
(如:在相册中选择多张图片的功能),如果想让两者都有都有各自的响应,可以参考第一条准则。
三、总结
小伙伴们如果掌握了以上两种方法,日常开发足够使用。我们路还长,你当初的热情还剩多少?
我今天就给大家讲解一下我在开发中遇到的ListView嵌套Button时点击事件冲突解决方法和ListView嵌套CheckBox时点击事件冲突解决方法,其他的控件基本都可以类比着来(先都按这两种方法解决,如果不行再网搜其他方法,目前这两种方法足够本人使用了)。
一、ListView 嵌套 Button 时,点击事件冲突解决方法
当listview中的item与button的点击事件冲突时,需要给listview的item和button分别加一个属性:
item的根布局(如:LinearLayout、RelativeLayout……)中:android:descendantFocusability="blocksDescendants"
Button中:android:focusable="false"
这样就可以分别设置两者(ListView 和 Button )的点击事件了,当点击的是Button时,就响应的是Button的监听,
当点击Item时,响应的就是ListView的监听。
二、ListView 嵌套 CheckBox时,点击事件冲突解决方法
当listview中的item与CheckBox的点击事件冲突时,需要给listview的CheckBox设置如下属性:
CheckBox中:
①android:focusable="false"
②android:focusableInTouchMode="false"
③android:clickable="false"
而item中不用设置其他属性,当点击item时,写逻辑改变CheckBox的状态即可。
这个是将CheckBox的点击事件监听抛给了父控件Item,所以让其失去焦点并不可点,这对于想实现列表选择比较有用
(如:在相册中选择多张图片的功能),如果想让两者都有都有各自的响应,可以参考第一条准则。
三、总结
小伙伴们如果掌握了以上两种方法,日常开发足够使用。我们路还长,你当初的热情还剩多少?
相关文章推荐
- android ListView Item和CheckBox、Button点击事件冲突的问题
- listview 嵌套checkbox响应item点击和button点击事件
- listview的item的点击事件与checkbox点击时间冲突
- ListView的item中有button ImageButton CheckBox EditText等时 点击事件失效问题的解决
- listview 的onitemlongclick阿和onitemclick冲突,item中还有button的点击事件
- listview的子布局如果有HorizontalScrollView、CheckBox 、button,可能会导致onListItemClick点击事件失效。
- ListView的item中有button ImageButton CheckBox EditText等时 点击事件失效问题的解决
- listview 的onitemlongclick阿和onitemclick冲突,item中还有button的点击事件
- listview的onitemlongclick和onitemclick冲突,item中的button点击事件
- 解决ListView的Item包含Button的点击冲突事件
- android listview里包含组件(checkbox)点击事件和Item的点击事件冲突
- Listview里包含组件(checkbox)点击事件和Item的点击事件冲突
- listview 的onitemlongclick阿和onitemclick冲突,item中还有button的点击事件
- listview中的item和button的点击事件的冲突
- 安卓 ListView Button、CheckBox、RadioButton 点击事件 覆盖的问题
- Android基础:listview的item点击事件会使里面的Button也出现按压的效果
- android ListView的Item中包含Button,CheckBox等可点击view的处理
- ListView中Button的点击事件冲突
- 区分listview的item和Button的点击事件
- checkbox 与listview 点击事件冲突