android解决gridview中点击ImageButton事件---花了一个下午找答案,多篇文章合集

用gridview进行加载子项,想要用imagebutton中点击前,点击后的效果。然后会发现,imagebutton的事件和gridview选择子项的事件会有冲突的。

方法1:

通过设置xml的属性,进行改变:关键在于这个属性:android:descendantFocusability和android:focusable="false"

而android:descendantFocusability有三个属性值:

 beforeDescendants:viewgroup会优先其子类控件而获取到焦点

 afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

 blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html

gridview和imagebutton产生冲突,就是源于焦点获取的问题,button有优先于gridview获取焦点,导致gridview的子项不响应。

只需要在gridview的子项item.xml的根布局,设置:android:descendantFocusability=”blocksDescendants”即可。

实例demo,xml详解

http://blog.csdn.net/iamzmq007/article/details/7555385

你会发现,只有当点击了子项item后,点击imagebutton才有相应。如果先点击imagebutton的话是没有响应的。所以最好的办法是用BaseAdapter,请看方法2

方法2:

最有效的方法就是实现BaseAdapter,进行自定义改变,并且还可以优化性能,提高效率。

这里有两篇关于BaseAdapter的文章:

http://www.cnblogs.com/loulijun/archive/2011/12/28/2305016.html

http://blog.csdn.net/m631521383/article/details/21550493?reload

至于要在gridview中,只是需要imagebutton的事件有相应,而不需要gridview选择子项事件的话:
http://dev.10086.cn/cmdn/wiki/index.php?edition-view-7436-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值