android:descendantFocusability方法介绍

2016-02-19 11:29 0 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享android:descendantFocusability方法介绍吧。

【 tulaoshi.com - 编程语言 】

此方法适用于所有母控件无法获取焦点的情况

开发中很常见的一个问题,项目中的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.

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

来源:https://www.tulaoshi.com/n/20160219/1597674.html

延伸阅读
Fragment Android是在Android 3.0 (API level 11)开始引入Fragment的。 可以把Fragment想成Activity中的模块,这个模块有自己的布局,有自己的生命周期,单独处理自己的输入,在Activity运行的时候可以加载或者移除Fragment模块。 可以把Fragment设计成可以在多个Activity中复用的模块。 当开发的应用程序同时适用于平板电脑和手机时,可...
AppWidgetProvider 用来在HOME页面显示插件 实现步骤: 1、为AppWidget提供一个元布局文件AppWigdetProvider_Provider.xml,用来显示Widget的界面。 2、创建一个类继承自AppWidgetProvider,并覆写里面的相关的方法。 3、为WidgetProvider创建一个引用的布局文件,或者直接用main.xml。 4、在程序中注册Manifest.xml。 代码如下: 1、在res/x...
1.图片处理 1.圆角图片 代码如下: /**      * 转换成圆角      *      * @param bmp      * @param roundPx      * @return      */     public static Bitmap convertToRoundedCorner(Bitmap ...
Android中的Adapter在自定义显示列表时非常有用,比如SimpleAdapter,它的构造函数是: public SimpleAdapter (Context context, List data, int resource, String[] from, int[] to) 它的各参数的意思: 1.context,上下文,SimpleAdapter关联的视图,一般而言就是当前的Activity,this 2.data,泛型的List,如ArrayList,Map或者...
工厂方法模式定义 : Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 常用的工厂方法模式结构 :   ...

经验教程

188

收藏

62
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部