2017-03-15 15 views
0

ローディングスピナーを表示する必要があります。このために、Firebaseがすべての子を読み込んだ時点を知る必要があります。関数の下では、ランダムな量の呼び出しが継続され、最後の時点はわかりません。レコードの量のクエリもこの問題を解決します。firebaseは、最後にonChildAddedが呼び出されたときです

@Override 
public void onChildAdded(DataSnapshot dataSnapshot, String previousChildKey) { 
} 

答えて

1

imこのコードを使用するとうまくいきます。 queryaddListenerForSingleValueEventを使用してください。

noViewTxtViewは、子がない場合は投稿がないことをユーザーに伝えるTextViewです。 とloadingLayoutは私のカスタムプログレスバーです。詳細は

this答え

void setProgressBar() { 
    query.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      loadingLayout.setVisibility(View.GONE); 
      hasChilderen = dataSnapshot.hasChildren(); 
      if (!hasChilderen) { 
       noViewTxtView.setVisibility(View.VISIBLE); 
      } 
      query.removeEventListener(this); 


     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
} 
を参照してください。
関連する問題