在我的自定义Android视图中,在我更改了布局参数后,我会在某个时候致电requestLayout()
。我已覆盖onDraw(...)
,因此我还需要确保调用invalidate()
。
但是,是否有必要在invalidate()
之后致电requestLayout()
?
说我没有,我相信Android会在requestLayout()
之后为我做这件事。可能是我在布局参数中发生的变化根本没有改变。 Android是否会检测到这种情况并避免在此边缘情况下调用invalidate()
,或者我保证无论如何都会调用invalidate()
?
编辑:这不是Usage of forceLayout(), requestLayout() and invalidate()的重复。我特别询问Android代码中是否有一些免税,例如if (newWidth == oldWidth && newHeight == oldHeight) return; // no need to invalidate?
即使我的布局参数没有改变,我仍然希望无效。换句话说,Android文档在哪里保证会发生失效?