GUIから分離されたコンポーネントを操作するために別に保存するコンポーネントのリストがあります(さまざまなソートなど)。 このリストのコンポーネントは別のコンテナに追加され、Y軸方向の単純なボックスレイアウトの要素が表示されます。コードネーム1 - コンテナのコンポーネントをリフレッシュするときのバグ
コンテナ内のコンポーネントをリフレッシュ(すべてのコンポーネントを削除し、リストを再度追加して変更を再検証またはアニメーション化)すると、コンテナ自体のインデックスから境界外の例外が発生します。 REMOVEALL Container.addの繰り返しの()、続いて呼び出すとき
java.lang.IndexOutOfBoundsException: Index: 2, Size: 1
at java.util.ArrayList.rangeCheckForAdd(ArrayList.java:661)
at java.util.ArrayList.add(ArrayList.java:473)
at com.codename1.ui.Container.insertComponentAtImpl(Container.java:629)
at com.codename1.ui.Container$1.updateState(Container.java:596)
at com.codename1.ui.animations.ComponentAnimation.updateAnimationState(ComponentAnimation.java:95)
at com.codename1.ui.AnimationManager.updateAnimations(AnimationManager.java:69)
at com.codename1.ui.Form.repaintAnimations(Form.java:1373)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1080)
at com.codename1.ui.Display.mainEDTLoop(Display.java:997)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
はどういうわけか、そのコンポーネントを追跡する内部のArrayListは、台無しにされます。誰もがこれについて知っていますか?
private void refreshComponents() {
container.removeAll();
container.animateUnlayout(200, 0, null);
for (Component cmp : sortedComponentList) {
container.add(cmp);
}
container.animateLayout(150);
}
助けてください。
おかげで、よろしくは
ご意見ありがとうございます。発生の詳細を知るためにもう少しデバッグしようとします。 CN1のホームページで問題報告のセクションを見たことがないので、正確にその問題を報告します。 – Lequi
githubプロジェクトのhttp://github.com/codenameone/CodenameOne/issues/にあります –