Android listview中使用button解决方法

其实很多东西不是粘贴代码就能解决的,做任何事都要用心做,这样才能晚上睡觉睡得比较踏实.

当你粘贴别人的代码,有时候出bug真的很烦,可是当你明白点原理的时候,能看出问题的实质,解决起来也很得心应手,开始今天的主题.当你的看到这个问题时,你应该知道问题出在哪里了,在listview中使用button(当然不只是button,还有imagebutton等自身响应点击的view),问题出现了,你会发现listview中的item不能点击了,具体是因为什么呢?大多数原因是抢焦点,button抢占了item的焦点使得item无法响应点击事件,那如何解决呢?今天的第一个主角(descendantFocusability)就要闪亮登场了...

android:descendantFocusability有三个值,分别是:beforeDescendants,afterDescendants,blocksDescendants

1.android:descendantFocusability="beforeDescendants"这句的意思就是说listview的item先拿到焦点

2.android:descendantFocusability="afterDescendants"只有button不需要焦点时item才能拿到焦点

3.android:descendantFocusability="blocksDescendants"item覆盖button直接拿到焦点

看到这三条属性的作用你应该知道怎么解决了吧,listview和button出现抢焦点时我一般使用使用第三条,然后在adapter写button的onclick事件,这样大家谁都不惹谁,和平相处.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值