ListView项中有Button等抢焦点控件设置Selecotor

本文介绍了解决Android中ListView项内包含Button等控件时,如何避免点击事件冲突的方法。通过设置特定属性,确保ListView项的点击事件能正常触发。
如果在ListView项中有Button,ImageButton或添加了点击事件的控件等,那么项的点击事件就会无法触发
为了触发项的点击事件首先在项的布局文件中添加属性
android:descendantFocusability="blocksDescendants"
效果就是给所有子控件加了属性
android:focusable="false"
这样项的点击事件就能触发了

如果在子项的子控件设置有Selector,点击子项任意区域子控件的Selector都会被触发
解决方法就是子控件不使用Selector,而使用OnTouchListener来替代Selector
if (event.getAction() == MotionEvent.ACTION_DOWN) {
//按下效果
} else if (event.getAction() == MotionEvent.ACTION_CANCEL || event.getAction() == MotionEvent.ACTION_UP) {
//弹起效果			 
}

对于这种效果暂时只找到这种解决方法,如果有更好的解决方法请告诉我
================================================================
给button等控件设置 android:duplicateParentState="false"即可( 方法无效
================================================================

如果不想使用Touch事件,那就只能给item里面设置点击事件

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/u/2406628/blog/473367

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值