首页 > 解决方案 > 在 FirestoreRecyclerAdapter 中膨胀多个布局

问题描述

我正在尝试在 FirestoreRecyclerAdapter 中膨胀至少两个布局,但在 FirestoreRecyclerAdapter 中似乎没有声明用于双重布局,因为我在 onCreateViewHolder() 上遇到问题,请看一下:

  @NonNull
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) {
            if (viewType == TYPE_ONE){
                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.category_item_layout, viewGroup, false);
                return new MainCategoryHolder(view);
            }else if (viewType == TYPE_TEST){
                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.test_layout_item, viewGroup, false);
                return new TestLayoutHolder(view);
            }

        }

这是我得到的:

“从 com.firebase.ui.firestore.FirestoreRecyclerAdapter 派生的匿名类”中的“onCreateViewHolder(ViewGroup, int)”与“android.support.v7.widget.RecyclerView.Adapter”中的“onCreateViewHolder(ViewGroup, int)”发生冲突;尝试使用不兼容的返回类型

我知道错误在说什么,但是,有什么替代方法,通过使用相同的 getItemViewType,它与普通的 recyclerview 是小菜一碟,但我找不到实现 FirestoreRecyclerAdapter 的方法,甚至可能吗?

这是我的getItemViewType()

  @Override
        public int getItemViewType(int position) {
            if (position % 2 == 0){
                return TYPE_TEST;
            }else {
                return TYPE_ONE;
            }
        }

标签: androidfirebasefirebaseuirecyclerview-layout

解决方案


推荐阅读