Codenameone AnimateLayout vs AnimateHierarchy

Codenameone AnimateLayout vs AnimateHierarchy,codenameone,Codenameone,我不知道和的区别。有时两者的工作方式相同,而有时只有其中一个允许获得动画。阅读链接的javadocs,我看不出有什么区别。感谢您的澄清animateLayout在平面层次结构中工作,因此它不会递归到下面的容器中移动它们。层次结构确实会递归。后一种方法似乎更优越,应该一直使用,但事实并非如此 在大多数情况下,您只希望在平面层次结构中移动组件,并将容器视为其他组件。对于这种情况,animateLayout()非常有效。 animateHierarchy()可能会失败,因为它决定在嵌套容器中移动元素,

我不知道和的区别。有时两者的工作方式相同,而有时只有其中一个允许获得动画。阅读链接的javadocs,我看不出有什么区别。感谢您的澄清

animateLayout
在平面层次结构中工作,因此它不会递归到下面的容器中移动它们。层次结构确实会递归。后一种方法似乎更优越,应该一直使用,但事实并非如此

在大多数情况下,您只希望在平面层次结构中移动组件,并将容器视为其他组件。对于这种情况,
animateLayout()
非常有效。
animateHierarchy()
可能会失败,因为它决定在嵌套容器中移动元素,并导致元素不正确地模糊,而不是仅仅调整容器的大小

在其他情况下,修改后的布局可能不是平面的。例如,我们可能有多个布局在一个层次结构中协同工作,我们对组件树进行了更改。在这种情况下,
animateLayout()
将无效,但
animateHierarchy()
可以解决此问题


animateHierarchy()
从定义上讲更慢、更复杂。因此,如果适用,您应该选择
animateLayout()

谢谢您的解释。
revalidate
forceRevalidate
之间是否有类似的区别,或者是有什么不同?forceRevalidate是一种避免边缘案例的技巧,因为某些原因,尽管进行了重新验证,但仍然无法工作。如果您正在使用它,您可能正在解决一个bug