android:descendantFocusability方法介绍

胶先生3

胶先生3

2016-02-19 11:29

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享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.

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。
属性的值有三种
beforeDescendants:viewgroup会优先其子类控件而获取到焦点
afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了,至此listview点击的灵异事件告一段落。心得:遇到不会不懂的地方除了网上查询资料之外,也可以多多去尝试每种属性的作用,多阅读官方文档(我始终觉得还是读原文的比翻译的理解的会更好)。
展开更多 50%)
分享

猜你喜欢

android:descendantFocusability方法介绍

编程语言 网络编程
android:descendantFocusability方法介绍

Android Bitmap详细介绍

编程语言 网络编程
Android Bitmap详细介绍

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

android CursorLoader用法介绍

编程语言 网络编程
android CursorLoader用法介绍

Android 有道词典的简单实现方法介绍

编程语言 网络编程
Android 有道词典的简单实现方法介绍

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Android Thread 介绍与实例

编程语言 网络编程
Android Thread 介绍与实例

android LinearLayout和RelativeLayout组合实现精确布局方法介绍

编程语言 网络编程
android LinearLayout和RelativeLayout组合实现精确布局方法介绍

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

ListView 分页加载更新实例分享

ListView 分页加载更新实例分享

Linux如何使用awk进行数组排序

Linux如何使用awk进行数组排序
下拉加载更多内容 ↓