Android ListView无法触发ItemClick事件

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应。这时候就可以使用descendantFocusability来解决啦

API描述如下:

android:descendantFocusability

Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.

Must be one of the following constant values.

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

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

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

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

通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了,至此listview点击的灵异事件告一段落。心得:遇到不会不懂的地方除了网上查询资料之外,也可以多多去尝试每种属性的作用,多阅读官方文档(我始终觉得还是读原文的比翻译的理解的会更好)。

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

最新文章

  1. jQuery的deferred对象学习
  2. socket 通信
  3. sass兼容IE8透明度方法
  4. Linear regression with one variable算法实例讲解(绘制图像,cost_Function ,Gradient Desent, 拟合曲线, 轮廓图绘制)_矩阵操作
  5. C++新手之详细介绍MFC
  6. 【转】第5篇:Xilium CefGlue 关于 CLR Object 与 JS 交互类库封装报告:自动注册JS脚本+委托回调方法分析
  7. JBPM学习(四):执行流程实例
  8. hdu3724Encoded Barcodes(Trie tree)
  9. Poj 2232 Moo Volume(排序)
  10. vsftp 虚拟用户
  11. Hiver 操作 MySQL 导致锁表
  12. 性能测试分享: Jmeter的源码分析main函数参数
  13. 计算理论:NFA转DFA的两种方法
  14. Netty(一):入门篇
  15. 你的变量究竟存储在什么地方 && 全局内存
  16. 动态规划——Freedom Trail
  17. Java 基础 JRE和JDK的区别
  18. Java 8 Optional In Depth
  19. Android网络功能之会话发起协议SIP
  20. git<add的作用>

热门文章

  1. 模仿cocos2dx 风格用工厂方法,实现class A,不使用宏,
  2. 【收藏】Linux添加/删除用户和用户组
  3. liferay7中如何Hiding the default Success Message
  4. xml基础学习笔记05
  5. An overview of the Spring MVC request flow
  6. 单点登录(iwantmoon.com出品)
  7. Oracle创建表时涉及的参数解析
  8. hdu 1533 Going Home 最小费用最大流
  9. Spring boot教程
  10. 深入理解javacript之prototype