【发布时间】:2017-11-16 04:33:33
【问题描述】:
我的 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) &&
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) &&
lastVisiblePosition == (positionStart - 1))) {
}
}
});
我现在的问题:如何在一个 RecyclerView 中设置两个适配器,或者我该怎么做,两个孩子(创建;添加)都显示在一个 RecyclerView 中?
【问题讨论】:
-
一个 RecyclerView 只能基于一个适配器。另外:FirebaseRecyclerAdapter 只能基于单个引用/查询。
-
我怎样才能做到这一点?
标签: java android android-recyclerview firebase-realtime-database