【问题标题】:Add Two FirebaseListAdapter in one Recylerview?在一个 Recyclerview 中添加两个 Firebase ListAdapter?
【发布时间】: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


【解决方案1】:

您可以在一个Activity或Fragment中添加两个RecyclerView,一个关于另一个,在一个中显示“已创建”,在另一个中显示“已添加”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    相关资源
    最近更新 更多