代码之家  ›  专栏  ›  技术社区  ›  Tirath

容器交换或组件交换

  •  1
  • Tirath  · 技术社区  · 11 年前

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

    我所说的三种状态是指,每次我按下作为组件添加到这个容器中的按钮时,我都需要更换一些/添加一两个组件,然后再次显示容器。

    现在,我很困惑是应该更换容器中的组件,还是应该在每次单击按钮时创建一个新的容器并交换整个容器本身。

    附言:更关心性能。

    当做

    2 回复  |  直到 11 年前
        1
  •  1
  •   Meier    11 年前

    您可以使用addComponent()和removeComponent()在容器中添加和移除元素。Is与元素的向量非常相似。

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

    我认为更换容器或更换容器内的组件之间没有太大的性能差异。对于重新绘制,在这两种情况下都必须重新计算布局,并且容器本身没有那么大的内存占用(例如图像)。 但您应该注意到,Component有一个方法getParent(),所以它意味着只有一个父级。所以我只使用一个容器并交换元素。

        2
  •  1
  •   Mun0n    11 年前

    您可以使用 Container 方法replace,其中只需要传递 Component 还有那个旧的。您也可以使用动画或将其设置为null。