无标题文章

Button 屏蔽事件 beforeDescendants 无效问题


无标题文章_第1张图片
button.png

昨天下午遇到一个奇怪的问题,需求父类View 统一处理事件,屏蔽Button。

父类设置了

android:clickable="true"

android:descendantFocusability="beforeDescendants"

子类:

android:clickable="false"

按理说没什么问题,结果就是Button一直相应事件。

折腾了许久,没有发现问题,终于早上重新找发现之前用

ButterKnife 给子类Button设置了点击事件,导致对该Button的屏蔽没有起到作用。

这是应该仔细的地方。

顺便回顾下 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.

定义ViewGroup及其后代之间的获取焦点的顺序关系

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

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

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

你可能感兴趣的:(无标题文章)