0
在Codename One中,我有一個像UI這樣簡單的聊天,並希望使用animateLayout添加消息(標籤)。如果消息之間存在時間,或者動畫的時間很短,但是當兩個動畫重疊時,第二個組件不會生成動畫,它可以正常工作。這是我曾嘗試代碼(把這個新的代號爲一個項目的啓動方法):Codename一個並發動畫?
Form hi = new Form("Hi World");
hi.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
Button button = new Button("Add");
Label label = new Label("Status");
button.addActionListener((actionEvent) -> {
hi.getContentPane().add("asd");
hi.getContentPane().animateLayout(3000);
});
hi.add(button);
hi.show();
我預期改變animateLayout到animateLayoutAndWait會解決這個問題,但事實並非如此。我也嘗試了以前的解決方法:
Form hi = new Form("Hi World");
hi.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
Button button = new Button("Add");
Label label = new Label("Status");
button.addActionListener((actionEvent) -> {
if(!animateLock) {
animateLock = true;
hi.getContentPane().add("asd");
hi.getContentPane().animateLayout(3000);
animateLock = false;
}
});
hi.add(button);
hi.show();
其中animateLock是主類的字段。我也嘗試在Display.getInstance()。callSerially(() - > {code here})中包裝添加,但它也不起作用。 如何處理並發動畫?
form.getAnimationManager()。flushAnimation()完成了這項工作! –
僅供參考,您也可以使用'animateLayoutAndWait()'修復上面的代碼。 –