它能干嘛?
最简单的解释:它可以add其他adapter
官方语言解释:该adapter可以将复杂的多条目类型进行解耦拆分,每一个(或多个)条目类型都可拆单独的adapter,更方便维护和拓展。
它用在哪?
最简单的应用场景:聊天会话列表
烧脑进阶场景:天猫、bilibili、今日头条的首页
它怎么用?
此处当然不会说了,因为:太TM长了😂
都说用于复杂页面了,如果2行解决了还叫复杂吗...
GitHub:https://github.com/weimingjue/BaseContainerAdapter
源码的MainActivity有示例教程(此处省略n行...)
主要实现逻辑:
mRv.setLayoutManager(new LinearLayoutManager(this));//如果是GridLayoutManager需要提前设置好,Linear随意
BaseContainerAdapter baseAdapter = new BaseContainerAdapter();
mRv.setAdapter(baseAdapter.addAdapter(new TextAdapter()));
//...
baseAdapter.setListAndNotifyDataSetChanged(list);
public class TextAdapter extends BaseContainerItemAdapter<RecyclerView.ViewHolder, TextBean> {
@Override
protected void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
TextView tv = (TextView) holder.itemView;
tv.setText("这是文字:" + getCurrentBean().textInfo.text);
}
@Override
protected RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType, LayoutInflater inflater) {
return new RecyclerView.ViewHolder(new AppCompatTextView(parent.getContext())) {};
}
}