1

私はFirebaseデータベースからいくつかのデータを取得しているアプリケーションを開発しています。firebaseの新しく追加されたデータを、recyclerviewの上部に追加するにはどうすればいいですか?詳細をご覧ください

問題は、何かを保存するたびに取得され、RecyclerViewの下部に追加されるという問題です。

私が望むのは、新たに追加したデータを、recyclerviewの上部に追加し、下部に追加しないことです。

私は何をしたいのか分かりません。

お知らせください。

答えて

4

まず最初に質問はrecyclerviewで、あなたのデータ検索のコードを掲載しました。あなたの希望は、データのためのリサイクルビューの使用

mArrayList.add(position, item); 
notifyItemInserted(position); 

に新しい項目を追加する場合と

mArrayList.add(0, item); 
notifyItemInserted(0); 

を使用する最初の行に挿入すると、あなたはトップにスクロールするmRecyclerView.smoothScrollToPosition(0);を使用することができます。

+0

のようなものを試してみてください。これは仕事でした!あなたもこれを見ていただけますか?http://stackoverflow.com/questions/38023511/how-to-place-ads-randomly-in-between-of-recyclerview-please-see-details Please ... –

2

は素晴らしい

Query lastToFirstQuery = databaseReference.orderBy("something_in_your_database").limitToLast(datasnapshot.numChildren()); 

lastToFirstQuery.addChildEventListener(new ChildEventListener() { 
     @Override 
     public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
      Map<String, String> newRequest = (Map<String, String>) dataSnapshot.getValue(); 
      imageUID = newRequest.get("imageUIDh"); 
      hDescription = newRequest.get("hDescription"); 
      currentLat = newRequest.get("currentLat"); 
      currentLng = newRequest.get("currentLng"); 
      postedBy = newRequest.get("postedBy"); 
      postedAtTime = newRequest.get("postedAtTime"); 
      postedOnDate = newRequest.get("postedOnDate"); 
      utcFormatDateTime = newRequest.get("utcFormatDateTime"); 

     } 

     @Override 
     public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

     } 

     @Override 
     public void onChildRemoved(DataSnapshot dataSnapshot) { 

     } 

     @Override 
     public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
      Snackbar snackbar = Snackbar 
        .make(coordinatorLayout, databaseError.getMessage(), Snackbar.LENGTH_LONG); 
      snackbar.setDuration(Snackbar.LENGTH_SHORT); 
      snackbar.show(); 
      progressBarLoading.setVisibility(View.INVISIBLE); 
     } 
    }); 
+0

M. Waqasの答えがこの問題を解決しました。あなたの答えもありがとう。 これもご覧ください:stackoverflow.com/questions/38023511/... Please?.. –

関連する問題