Codename Oneでは、私はUIのような簡単なチャットを持っており、animateLayoutを使ってメッセージ(ラベル)を追加したいと思っています。メッセージ間に時間がある場合、またはアニメーションの時間が短い場合、2つのアニメーションが重なった場合、2番目のコンポーネントはアニメートされません。ここで私がしようとしているコード(新しいコードネームのプロジェクトの開始方法でこれを置く)です:コードネームは1つの同時アニメーションですか?
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();
私はanimateLayoutAndWaitにanimateLayoutを変更すると、この問題を解決することが期待が、それはしませんでした。私はまた、古い回避策を試しました:
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()'で修正することもできます。 –