setHidden不起作用

时间:2016-12-27 11:43:41

标签: codenameone

我使用了setHidden(true)并且它不起作用。如果使用setHidden而不是setVisible,则可以看到容器及其组件。此外,我在使用setVisible时遇到的问题是容器的背景只是在容器内的组件从顶部动画后弹出。如何使容器的背景与其组件一起移动到顶部。

questionAnswerContainer = new Container(new BoxLayout(BoxLayout.Y_AXIS));

titleDialog = new Label("Yuppie!");
titleDialog.setUIID("GameDialogLabelBold");
body1 = new Label("Let’s celebrate");
body2 = new Label("with another");
body3 = new Label("drink");
Button ok = new Button(theme.getImage("playIcon.png"));

dialogContainer = (BoxLayout.encloseY(titleDialog, body1, body2, body3, ok));
dialogContainer.getAllStyles().setBgImage(theme.getImage("yuppieDialog.png"));
dialogContainer.setPreferredW(screenWidth * 2 / 3);
dialogContainer.setPreferredH(screenWidth * 2 / 3);

add(BorderLayout.CENTER, LayeredLayout.encloseIn(questionAnswerContainer, FlowLayout.encloseCenterMiddle(dialogContainer)));
dialogContainer.getParent().setVisible(false);
//        dialogContainer.setHidden(true);  //it doesnot work, the container and its components are visible if setHidden is used instead of setVisible
f.revalidate();


public void checkIfCorrect(Button checkBtn, Form f) {
    dialogContainer.getParent().setY(-Display.getInstance().getDisplayHeight());
    dialogContainer.getParent().setVisible(true);
    //     dialogContainer.getParent().setHidden(false);
}

1 个答案:

答案 0 :(得分:0)

尝试f.invalidate();。 对我来说,有时无效和重新验证的组合都有效。