Button 屏蔽事件 beforeDescendants 无效问题
昨天下午遇到一个奇怪的问题,需求父类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会覆盖子类控件而直接获得焦点