Добавить два FirebaseListAdapter в один Recylerview?

#java #android #android-recyclerview #firebase-realtime-database

#java #Android #android-recyclerview #firebase-база данных в реальном времени

Вопрос:

Каждый пользователь в моей базе данных Firebase создал группу и был добавлен в группу :

 (UserID)z.B(IOPFNV5423890)
      • groups
          • created
              • (groupID)
                    • name (name)
                    • timestamp (usw...)

          • added
              • (groupID)
                    • name (name)
                    • (.....)
  

И теперь у меня есть только один FirebaseListAdapter :

 final ListUserFirebaseAdapter firebaseAdapter = new ListUserFirebaseAdapter(mFirebaseDatabaseReference.child("users/"   userModel.getId()   "/groups/created"), "", this);


 firebaseAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
            @Override
            public void onItemRangeInserted(int positionStart, int itemCount) {
                super.onItemRangeInserted(positionStart, itemCount);
                int friendlyMessageCount = firebaseAdapter.getItemCount();
                int lastVisiblePosition = mLinearLayoutManager.findLastCompletelyVisibleItemPosition();
                if (lastVisiblePosition == -1 ||
                        (positionStart >= (friendlyMessageCount - 1) amp;amp;
                                lastVisiblePosition == (positionStart - 1))) {
                    rvListMessage.scrollToPosition(positionStart);
                }
            }
        });
  

Здесь я установил адаптер в RecyclerView :

 rvListMessage.setAdapter(firebaseAdapter);
  

Но с помощью этого кода я могу установить только один адаптер, но я хочу также установить этот адаптер :

  final ListUserFirebaseAdapter firebaseAdapter1 = new ListUserFirebaseAdapter(mFirebaseDatabaseReference.child("users/"   userModel.getId()   "/groups/added"), "", this);

   firebaseAdapter1.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
            @Override
            public void onItemRangeInserted(int positionStart, int itemCount) {
                super.onItemRangeInserted(positionStart, itemCount);
                int friendlyMessageCount = firebaseAdapter1.getItemCount();
                int lastVisiblePosition = mLinearLayoutManager.findLastCompletelyVisibleItemPosition();
                if (lastVisiblePosition == -1 ||
                        (positionStart >= (friendlyMessageCount - 1) amp;amp;
                                lastVisiblePosition == (positionStart - 1))) {
                }
            }
        });
  

Теперь мой вопрос: как я могу установить два адаптера в одном RecyclerView или как я могу это сделать, чтобы оба дочерних элемента (созданные; добавленные) отображались в одном RecyclerView?

Комментарии:

1. RecyclerView может быть основан только на одном адаптере. Кроме того: FirebaseRecyclerAdapter может быть основан только на одной ссылке / запросе.

2. И как я могу это сделать, чем?

Ответ №1:

Вы можете добавить два RecyclerView в одно действие или фрагмент, один о другом, и отображать «создано» в одном и «добавлено» в другом