当其中一个父母的状态发生变化时,如何通知子视图?

时间:2017-08-01 16:53:14

标签: android android-view isenabled

我正在尝试通过堆叠几个较小的布局和视图来构建复杂的布局。例如,我们有一个基于矢量渲染的自定义图标,我们将它们与TextView以及我们称之为DecorativeIconTextView的类中的一些其他配件一起显示。

问题在于渲染。该图标知道如何在正常和禁用状态下呈现自身。但是,即使已禁用其父装饰DecorativeIconTextView,该图标仍会报告它本身已启用。

思考包括一些询问父链以查看其中任何一个是否报告为禁用(ala pull)的方法,如果是,请将自己视为已被禁用。但是,该方法不允许更改父级的isEnabled属性以向下传播到所有子级(ala push)。

我也不确定如何监视对isEnabled属性的更改,因为我没有看到任何覆盖。

那么当父母的isEnabled状态发生变化时,如何通知孩子呢?

1 个答案:

答案 0 :(得分:0)

启用或禁用视图时,视图无效。因此将调用onDraw()方法。您可以扩展任何视图并覆盖onDraw()方法,并且可以在视图状态发生变化时通知您的系统。