私のアプリでは、ユーザーが入力時にフィルタリングできる検索ボックスがあります。なんらかの理由で、フィルタリングの実行中にInfinteProgress
を正しく表示することができません。 はここに私のコードです:このバージョンでコンテナセットのCodenameOneフィルタの最適化
パス1
public void renderForumList(){
try{
magnify = mStateMachine.findForumSearchIcon(form);
}catch(NullPointerException ex){
System.out.println("User typed additional character in search term before previous term finished executing");
}
InfiniteProgress infi = new InfiniteProgress();
magnify.getParent().replace(magnify, infi, null);
Display.getInstance().invokeAndBlock(new Runnable() {
@Override
public void run() {
for (int i = 0;i < containerStates.length;i++){
if(containerStates[i] != listItems[i].isVisible()){
listItems[i].setHidden(!containerStates[i]);
listItems[i].setVisible(containerStates[i]);
}
}
Display.getInstance().callSerially(new Runnable() {
@Override
public void run() {
mStateMachine.findForumsListComponent(form).animateLayout(200);
mStateMachine.findContainer2(form).replace(infi, magnify, null);
}
});
}
});
}
、無限の進歩が適切な位置に現れるが、それは回転しません。このバージョンで
パス2
public void renderForumList(){
try{
magnify = mStateMachine.findForumSearchIcon(form);
}catch(NullPointerException ex){
System.out.println("User typed additional character in search term before previous term finished executing");
}
InfiniteProgress infi = new InfiniteProgress();
magnify.getParent().replace(magnify, infi, null);
for (int i = 0;i < containerStates.length;i++){
if(containerStates[i] != listItems[i].isVisible()){
listItems[i].setHidden(!containerStates[i]);
listItems[i].setVisible(containerStates[i]);
}
}
mStateMachine.findForumsListComponent(form).animateLayout(200);
mStateMachine.findContainer2(form).replace(infi, magnify, null);
}
}
}
、拡大鏡アイコンだけで簡単に点滅しますが、InfiniteProgress
スピナーが見えることはありません。
私はシミュレータとAndroidデバイスで同じ結果を得ています。
検索中にInfiniteProgress
を回転させるにはどうすればよいですか?
を
invokeAndBlock
チェックアウトを理解するために、UIのレンダリング中に 'InfiniteProgress'を表示する方法はありませんか?あれは正しいですか? – ygesherいいえ、それは私が言ったことではありません...私はUIコンポーネントへのアクセスはEDTで行うべきだと私は言った。 EDTの他のもの。 EDTの章を読むことをお勧めします。 –