其实很多东西不是粘贴代码就能解决的,做任何事都要用心做,这样才能晚上睡觉睡得比较踏实.
当你粘贴别人的代码,有时候出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事件,这样大家谁都不惹谁,和平相处.