Apache Pivot:交换窗格可见性

时间:2014-03-28 02:49:21

标签: apache-pivot

我在隐藏一个窗格并在Apache Pivot应用程序中显示另一个窗格时遇到问题。在我的BXML文件中,我在一个窗口中有两个BoxPane。窗格1开始可见,窗格2开始隐藏:

<BoxPane bxml:id="pane1" orientation="vertical" styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
  <Label text="Pane 1"/>
  <PushButton bxml:id="startButton" buttonData="Start"/>
</BoxPane>

<BoxPane bxml:id="pane2" orientation="vertical" visible="false" styles="{horizontalAlignment:'center', verticalAlignment:'center'}">
  <Label text="Pane 2"/>
</BoxPane>

我在按钮上添加了一个监听器,该窗口隐藏了窗格1,窗格2可见:

@BXML private PushButton startButton = null;
@BXML private BoxPane pane1 = null;
@BXML private BoxPane pane2 = null;

@Override
public void initialize(Map<String, Object> namespace, URL location, Resources resources)
{
  startButton.getButtonPressListeners().add(new ButtonPressListener()
  {
    @Override
    public void buttonPressed(Button button)
    {
      start();
    }
  });

}

private void start()
{
  pane1.setVisible(false);
  pane2.setVisible(true);
}

当我点击按钮时,窗格1被隐藏,窗格2从未显示。当我颠倒start()中语句的顺序时,会发生同样的事情。

有趣的是,当我发表评论pane1.setVisible(false)时,单击按钮时会显示第2页

这是我的第一个Pivot应用程序,所以也许有一些花哨的容器以更好的方式做我想做的事情,但我仍然想知道这里发生了什么。我想做的事情似乎很简单,我有点困惑为什么它不起作用。

1 个答案:

答案 0 :(得分:1)

您可能想尝试使用CardPane在两个视图之间切换。关于它的教程在这里:http://pivot.apache.org/tutorials/card-panes.html 基本的想法是让CardPane&#34;主持人&#34;你的两个BoxPanes,就像这样:

&#13;
&#13;
<CardPane bxml:id="cardPane">
    <BoxPane bxml:id="pane1" ...>
        <Label text="Pane 1"/>
        ...
    </BoxPane>
    <BoxPane bxml:id="pane2" ...>
        <Label text="Pane 2"/>
    </BoxPane>
</CardPane>
&#13;
&#13;
&#13;

使两个BoxPanes可见。然后,当您想要在它们之间进行更改时,请使用cardPane.setSelectedIndex(...);