FirebaseUI FirebaseListAdapterを使用します。データをロードするのに時間がかかり、回転円を表示したい。 populateViewでビューの可視性を非表示に設定することで、進行状況バーを閉じることはできますが、表示するビューがない場合は動作しません。これをどう扱う?FirebaseListAdapterに表示するビューがなくてもプログレスバーを閉じる方法は?
2
A
答えて
6
アップデート:FirebaseUIアダプタは、最近、onDataChanged()
というメソッドを持ち、データのロードが完了したときに検出することができます。
source code on githubを参照してください。そこから:
このメソッドは、データベースからの更新が完全に処理されるたびにトリガーされます。最初にこのメソッドが呼び出されると、データがまったく使用できない場合を含めて、初期データがロードされました。次にメソッドが呼び出されるたびに、完全な更新(複数の子アイテムへの更新からなる可能性があります)が完了しました。
ロードインジケータを非表示にしたり(最初のロード後に)、UI要素のバッチ更新を完了するには、通常このメソッドをオーバーライドします。
FirebaseUIサンプルアプリは、その "ロード" インジケータを非表示にするonDataChanged()
を上書きします:
public void onDataChanged() {
// If there are no chat messages, show a view that invites the user to add a message.
mEmptyListMessage.setVisibility(getItemCount() == 0 ? View.VISIBLE : View.GONE);
}
オリジナル答え
FirebaseUIリストアダプタは、内部Firebase ChildEventListener
を使用しています。このリスナーは、関連する子イベントに対してのみ起動します。子供がいない場合、イベントは発生しません。
値リスナーをアダプタに渡す参照/クエリに追加することで、この状況を検出できます。
DatabaseReference list = mDatabase.child("messages");
showSpinner();
mAdapter = new FirebaseListAdapter<Message>(......, list) {
void populateView(View view, Message message, int position) {
// the first message was loaded
hideSpinner();
}
});
list.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// the initial data is loaded (even if there was none)
hideSpinner();
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.w(TAG, "onCancelled", databaseError.toException());
}
});
関連する問題
- 1. ビューが閉じる前にUITableViewへの更新を表示する方法
- 2. C#%に応じてプログレスバーを表示する方法
- 3. JasperViewerが表示されて閉じると、メインフレーム/親も閉じます
- 4. チタンタブグループ:ウィンドウを閉じてタブグループを表示する方法は?
- 5. View Controller前のビューを閉じて再表示するコントローラ
- 6. ウィザードスタイルのナビゲーションでビューを閉じて別のビューを表示
- 7. modalviewcontrollerを閉じた後にビューを表示する
- 8. tableRowが表示されなくてもフラッシュする方法(JavaFx)
- 9. Androidプログレスバーが閉じられない
- 10. 完了時にウィンドウを閉じるプログレスバー
- 11. ビューを閉じる前にUIAlertを表示
- 12. TabBarControllerを閉じずにモーダルビューコントローラーを表示する方法
- 13. getuikit閉じるボタンが正しく表示されない
- 14. ファイルの表示を閉じるには
- 15. Fancybox 3:モーダルiframeの小さな閉じるボタンを表示する方法は?
- 16. セレクタなしでqTip2を非表示にする/閉じる方法?
- 17. pythonで画像を表示および閉じる方法は?
- 18. ポップアップウィンドウを非表示または閉じる方法
- 19. ウィンドウを閉じてもimgをPictureBoxに保存する方法
- 20. ViewModelのビューを開く/閉じる
- 21. QDialogをクリックして閉じるとサブウィジェットを閉じると閉じる方法を教えてください。
- 22. メインダイアログ(親)を閉じることなくダイアログボックス(子)を閉じる方法
- 23. AngularJSのプログレスバーにテキストのパーセンテージを表示する方法は?
- 24. iPhone:プログレスバーに複数の色を表示する方法は?
- 25. 接続を閉じてもメッセージは表示されません
- 26. 「仕事」が「働いている」間にプログレスバーを表示する方法
- 27. 同じモーダルビューを一度閉じた後に表示する方法
- 28. ボタンを押さなくても警告ダイアログが閉じます
- 29. Hibernate:セッションファクトリを閉じてもc3p0接続プールが閉じない
- 30. ブラウザが閉じてもCodeIgniterがセッションデータを保持する方法は?
onDataChange()メソッドありがとうございました!それは魅力のように働く:D –