无标题文章

Button 屏蔽事件 beforeDescendants 无效问题


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会覆盖子类控件而直接获得焦点

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,138评论 25 709
  • Android中View和ViewGroup关系大揭密 1. 概念 Android中的View与我们以前理解的“视...
    所以一直走啊阅读 452评论 0 4
  • 设计模式之六大原则(转载) 设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多,但是很多地方解释...
    天涯人1196阅读 343评论 0 0
  • “和前女友分手两年多了,前两天回家,妈妈跟我说,她结婚了。结婚之前给我妈打了个电话,哭的稀里哗啦。我妈跟我说要不是...
    Mr懒猫_阅读 291评论 0 0
  • 【风趣的解释】 Builder Mode 有时候带着MM去约会,KFC可能也是一个不错的约会地点,进去我们常常点上...
    周文洪阅读 689评论 0 2