Android之ListView的item获取不到焦点

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MrZhang_happy/article/details/43056543

前两天我在写一个ListView,其中自定义的item中的控件有ImageView、TextView、Button,反正是比较复杂,写完一整套流程后,真机一运行,诡异的事情出现了,点击item居然无响应。这怎么回事呢?找了又找,代码看了一遍又一遍,没问题啊也,怎么回事呢这是?!!

 开发中很常见的一个问题,项目中的ListView不仅仅是简单的文字,常常需要自定义ListView,自己的Adapter去继承BaseAdapter,在Adapter中按照需求去编写,但是有时候就想我上面说的,当一个item有多个控件的时候可能点击每一个item都没有反应,无法获取焦点。但是代码都没问题,原因多半是自己item中的哪些控件会将焦点获取到,所以常常点击item时变化的时子控件,item本身没有响应。

后来我看了看官方文档,在我的item中的父控件(根布局)中加了一条属性:

android:descendantFocusability="blocksDescendants"
  
  
该属性当一个view获取焦点时,定义ViewGroup会覆盖子类控件而直接获取焦点。

来看一下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.


属性的值有三种:

        beforeDescendants:viewgroup会优先其子类控件而获取到焦点

        afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

        blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点


PS:参考 https://blog.csdn.net/u010838555/article/details/42243075

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MrZhang_happy/article/details/43056543

猜你喜欢

转载自blog.csdn.net/hizhangyuping/article/details/83030593