android:descendantFocusability用法简析

开发中很常见的一个问题,项目中的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点击的灵异事件告一段落。

阅读更多
个人分类: android
上一篇java.lang.RuntimeException: Can't create handler inside thread that has not cal
下一篇Android中自定义Activity和Dialog的位置大小背景和透明度等
想对作者说点什么? 我来说一句

Android PhoneGap简析

2013年02月21日 246KB 下载

STL简析入门基础学习

2011年05月16日 61KB 下载

简析搜索引擎实现原理

2010年12月13日 535KB 下载

android 简析xml源码

2013年04月10日 25KB 下载

android简析json数据

2013年04月26日 184KB 下载

B2C电子商务推广方案简析

2011年12月11日 29KB 下载

android progressDialog各种用法

2011年07月20日 6KB 下载

linux多点触摸协议

2013年03月20日 6KB 下载

没有更多推荐了,返回首页

关闭
关闭