【发布时间】:2016-09-18 21:27:35
【问题描述】:
我有一个自定义 ViewGroup,其中添加了一个自定义 ImageView 作为子项。现在,我的问题是,每当我更改子图像中的图像时,通过覆盖 onDraw(),都会调用父元素中的 onLayout 方法。不调用自定义 ViewGroup 中的 onLayout 方法就不能只更改子中的图像吗?谢谢。
【问题讨论】:
我有一个自定义 ViewGroup,其中添加了一个自定义 ImageView 作为子项。现在,我的问题是,每当我更改子图像中的图像时,通过覆盖 onDraw(),都会调用父元素中的 onLayout 方法。不调用自定义 ViewGroup 中的 onLayout 方法就不能只更改子中的图像吗?谢谢。
【问题讨论】:
有趣的是,没有人回答这个简单的问题。
当需要重绘视图组时,默认调用 onLayout() 方法。 见https://developer.android.com/guide/topics/ui/how-android-draws.html
你实际上可以扩展视图组来实现你自定义的 onLayout() 和 onMeasure() 方法来控制它被调用的行为。
【讨论】: