#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 в одно действие или фрагмент, один о другом, и отображать «создано» в одном и «добавлено» в другом