1
我用setHidden(true),它不起作用。如果使用setHidden而不是setVisible,則容器及其組件是可見的。此外,我在使用setVisible時遇到的問題是,容器內的組件從頂層開始動畫後,容器的背景會彈出。我怎樣才能使容器的背景隨其組件一起移動。setHidden不起作用codenameone
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);
}
不,它不工作。 dialogContainer的所有組件都從上到下滑動,但dialogContainer的bg Img剛好出現,不會從頂部移動到其特定位置以及其組件。我認爲它是由使用setVisible引起的,不是嗎? – beck
set hidden將首選大小設置爲0,因此它需要animateLayout(在組件父級上)或revalidate()才能工作。在你的情況下,你明確地設置首選大小忽略棄用警告... –
hello shai ..是的,這是原因。但爲什麼不把bg圖像設置爲從頂部作爲內部組件的dialogContainer動畫。 bg圖像jst在所有動畫發生後最後出現。 – beck