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

转自 http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html  感谢他

转载于:https://blog.51cto.com/poarry/1560414

Android开发中listView的item无法获取焦点相关推荐

  1. Android开发中ListView多屏的全选、反选功能

    [size=medium] 鄙人最近刚开始学习Android,在练习的时候写到一个ListView的全选反选功能.本来以为这个功能很简单,随随便便就能搞定,结果真的下手去做的时候被虐的死去活来,不知道 ...

  2. android 中自定义安装,Android开发中ListView自定义adapter的封装

    [引入] 我们一般编写listView的时候顺序是这样的: •需要展示的数据集List •为这个数据集编写一个ListView •为这个ListView编写一个Adapter,一般继承自BaseAda ...

  3. android listview下拉动画效果,Android开发中利用ListView实现一个渐变式的下拉刷新动画...

    Android开发中利用ListView实现一个渐变式的下拉刷新动画 发布时间:2020-11-23 16:50:31 来源:亿速云 阅读:80 作者:Leah 本篇文章给大家分享的是有关Androi ...

  4. android 开发中不可不知的技巧

    转载自 https://github.com/jiang111/awesome-android-tips awesome-android-tips Android tips English_Versi ...

  5. Android 开发中一些很有用但你不知道的方法

    English_Version:https://github.com/jiang111/awesome-android-tips/blob/master/README-en.md这里收集了大家常用的一 ...

  6. Android 系统(188)---Android开发:ListView、AdapterView、RecyclerView全面解析

    Android开发:ListView.AdapterView.RecyclerView全面解析 目录 ListView.AdapterView.RecyclerView全面解析.png Adapter ...

  7. android开发中遇到的问题汇总

    android开发中遇到的问题汇总(五),android汇总127.ANDROID仿IOS时间_ANDROID仿IOS弹出提示框 http://dwtedx.com/itshare_297.html1 ...

  8. Android开发中,那些让你相见恨晚的方法、类或接口

    getParent().requestDisallowInterceptTouchEvent(true);剥夺父view 对touch 事件的处理权,谁用谁知道. ArgbEvaluator.eval ...

  9. 浅谈Android开发中的NFC功能

    目录 1."NFC"的自我描述 1.1 NFC功能的基本概念 1.2 NFC功能的背景.特性及发展趋势 2.NFC的基础知识.基本原理 2.1 NFC的工作模式 2.2 实现NFC ...

  10. Android开发中StackOverflowError错误实例分析

    http://blog.csdn.net/mozhizun/article/details/7051300 http://blog.csdn.net/gaomatrix/article/details ...

最新文章

  1. 2018-8-22-粒子滤波
  2. R语言manova函数进行多元方差分析(Multivariate analysis of variance 、MANOVA)、如果多变量检验结果有显著性,summary.aov函数锦欣单变量方差分析
  3. 第四章 .net core做一个简单的登录
  4. 有一种爱,永远也无法逾越
  5. SparkSubmit源码解读记录
  6. Linux脚本统计指定目录下文件和文件夹数量
  7. django-ckeditor表情包修改
  8. java substring 实例_JAVA中截取字符串substring用法
  9. 计算机刷bios版本,主板刷bios的6种方法,电脑刷bios方法-
  10. idea中字体由繁体变简体
  11. 微信扫码支付模式一 : 获取商户订单信息超时或者商户返回的httpcode非200
  12. Olly's Shadow
  13. Excel如何条件求和
  14. 网络复现之基于TPS的STN网络
  15. java: 找不到符号 符号: 方法 getResourceAsStream(java.lang.String) 位置: 类 com.alibaba.druid.support.loggi
  16. 川土微电子 | CA-IF1051 CAN-FD收发器
  17. Spring框架究竟是什么
  18. 身为一个程序媛的深刻自我检讨
  19. 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多
  20. 「多校联考」第三周二场

热门文章

  1. java第二章_Java第二章基本语法
  2. go中break continue的使用:示例
  3. 学生选课系统代码-6-conf配置层
  4. golang语言中的关于err的函数封装事项的函数使用
  5. 单网卡同时上内外网_Win10双网卡上网冲突(内网、外网)
  6. 机器学习基础 -- 李宏毅2020机器学习课程笔记(一)
  7. 浙江理工大学机械复试c语言真题,2016年浙江理工大学机械与自动控制学院计算机应用基础)之C程序设计复试笔试最后押题五套卷...
  8. 个人博客网站的设计与实现_使用hexo来搭建个人网站博客(超详细教程)
  9. 物联网未来已来,新零售已处在巨变前夕
  10. Java阻塞IO与非阻塞IO