关于descendantFocusability的设置

转载 2015年11月21日 13:18:29

    开发中很常见的一个问题,项目中的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点击的灵异事件告一段落。心得:遇到不会不懂的地方除了网上查询资料之外,也可以多多去尝试每种属性的作用,多阅读官方文档(我始终觉得还是读原文的比翻译的理解的会更好)。


EditText无法获取焦点 获取焦点无法编辑(android:descendantFocusability用法简析 )

android:descendantFocusability用法简析  开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter...
  • zz_mm
  • zz_mm
  • 2015年07月01日 18:04
  • 740

容器与子类焦点优先——descendantFocusability

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了...
  • cyjkevin
  • cyjkevin
  • 2016年06月15日 11:54
  • 236

列表控件RecyclerView的使用

[TOC] 列表控件也算是很常见的控件了,现在基本都切换到RecycleView了,这边记录下列表控件的基本的使用以及几种情况的处理:Demo链接RecycleView官网介绍 使用上基本步骤如下...
  • zxz_tsgx
  • zxz_tsgx
  • 2016年05月30日 10:59
  • 2278

安卓开发——问题:ListView点击事件失效(descendantFocusability)

一、问题 在安卓开发学习过程中,时常会遇到ListView的点击事件失灵的问题,就是为ListView设置了OnItemCLickListener,但没有触发点击事件。 二、原因 1、第一种情况 在项...
  • qq_28484355
  • qq_28484355
  • 2016年04月12日 13:43
  • 458

Android7.0 Activity的绘制加载流程

涉及类: frameworks\base\core\java\android\app\Activity.java frameworks\base\core\java\com\android\int...
  • abm1993
  • abm1993
  • 2017年03月08日 15:13
  • 480

ListView中含有EditText时候--要命的焦点问题迎刃而解

最近做项目的时候遇到了一个问题,就是在ListView的item上面含有一个EditText,要求是这样: 1当点击item的时候,item可以点击; 2当点击EditText的时候EditTex...
  • eyishion
  • eyishion
  • 2016年03月30日 15:59
  • 7582

设置JVM内存设置

一、设置JVM内存设置 1. 设置JVM内存的参数有四个: -Xmx   Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定; ...
  • u012012900
  • u012012900
  • 2017年04月10日 10:57
  • 56

Vmware设置网络设置

首先要明白,VMware可以为我们虚拟出一个路由器(交换机) 具体的设置就在虚拟网络编辑器中设置 这里面有我们可以使用的具体ip范围。 网关和子网掩码必须要记住,后面我们...
  • lansekaola
  • lansekaola
  • 2017年11月19日 11:38
  • 36

ECharts基本设置设置

theme = { // 全图默认背景 // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da7...
  • www93111
  • www93111
  • 2017年01月09日 16:27
  • 5493

idea的一些常用设置设置

自定义快捷键       如我们常用的定义map、list,main函数,加注释,都可以通过自定义快捷键方便地使用,如我上边定义的几个,比如我输入 list,然后按空格键...
  • ctf_htj
  • ctf_htj
  • 2013年12月12日 09:06
  • 613
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于descendantFocusability的设置
举报原因:
原因补充:

(最多只允许输入30个字)