容器交换或组件交换

时间:2013-10-27 07:24:14

标签: lwuit lwuit-form

我的表单底部有四个按钮。单击这些按钮中的任何一个都会导致容器准备。在这个容器中我有五个组件(包括按钮),这个容器可以处于三种状态(按钮点击更改在容器内)。

我指的是每次按下一个添加到此容器中的按钮作为组件,我需要更换一些/添加一个或两个组件,然后再次显示容器。

现在,我很困惑我是否应该更换容器内部的组件,或者我应该在每次按钮点击时创建一个新容器并交换整个容器本身。

PS:更关注性能。

问候。

2 个答案:

答案 0 :(得分:1)

您可以使用名为replace的Container方法交换组件,您只需要传递新的Component和旧的{{1}}。您也可以使用动画或将其设置为null。

答案 1 :(得分:1)

您可以使用addComponent()和removeComponent()从容器中添加和删除元素。是非常类似于元素的向量。

我写了一个关于Codename One的例子,我在网格中交换了组件: http://meier-online.com/en/2012/10/codename-one-mirror-grid/ 这在lwuit中应该是相同的(动画除外)

我不认为更换容器或更改其中的组件之间存在很多性能差异。对于重绘,必须在两种情况下重新计算布局,并且容器本身没有如此大的内存占用(例如图像)。 但是你应该注意到一个Component有一个方法getParent(),所以它只有一个父类。所以我只使用一个容器并交换元素。