android:descendantFocusability各个属性值的含义

descendantFocusability是View的一个属性,该属性是viewGroup和其子控件焦点相关的属性。通过该属性可以指定viewGroup和其子View谁获取焦点, 直接在viewGroup上使用就行。

该属性有三个属性值,分别是beforeDescendants、afterDescendants、blocksDescendants.

下面是三个属性值的含义:

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

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

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

该属性在RecyclerView 、ListView等item中有ImageButton、Button、CheckBox等子控件的时候就可以很方便的控制是整个item获取焦点响应点击事件还是item中的这些子View获取焦点响应事件;并且在RecyclerView 嵌套使用时导致互相争夺焦点时也可以使用android:descendantFocusability=”blocksDescendants”解决。

发表回复

后才能评论