Я следил за базовым учебным пособием о том, как начать анимацию в мобильном приложении, созданном с помощью Codename One.Codename One - Hide Animation для одиночного элемента удаляет все
https://www.codenameone.com/manual/animations.html
В то время как я получаю концепцию использования макета анимации и unlayout анимации на контейнерах, чтобы переместить вещи на место и из места, это, кажется, не работать должным образом для unlayout анимации.
Мысль нижеприведенного кода состоит в том, чтобы иметь список элементов, которые либо показаны, либо скрыты на основе некоторых результатов поиска (пример имеет только простые метки). Анимация на месте хорошо работает при использовании в одиночку, как показано в учебнике.
Но почему все полностью исчезает при вызове «animateUnlayoutAndWait()»?
Form hi = new Form("Layout Animations", new BoxLayout(BoxLayout.Y_AXIS));
Button button = new Button("Hide");
hi.add(button);
for (int iter = 0; iter < 10; iter++) {
Label b = new Label("Label " + iter);
b.setWidth(button.getWidth());
b.setHeight(button.getHeight());
b.setY(-button.getHeight());
hi.add(b);
}
button.addActionListener((e) -> {
// hide every second label on click
if (button.getText().equals("Hide")) {
button.setText("Show");
for (int iter = 1; iter < hi.getContentPane().getComponentCount(); iter += 2) {
Component c = hi.getContentPane().getComponentAt(iter);
c.setHidden(false);
}
hi.getContentPane().animateUnlayoutAndWait(500, 0);
}
// show stuff again
else {
button.setText("Hide");
for (int iter = 1; iter < hi.getContentPane().getComponentCount(); iter += 2) {
Component c = hi.getContentPane().getComponentAt(iter);
c.setHidden(true);
}
hi.getContentPane().animateLayoutAndWait(500);
}
});
hi.show();
Спасибо и наилучшие пожелания
Попробуйте изменить его на 'animateUnlayout()' и удалите часть 'AndWait'. – Diamond