关于Android 列表多布局的那些事

# AliTitleWithList
仿阿里头部滑动及列表多布局实现

关于多布局实现那些事
# 原有实现方式:
1. 在Adapter的onBindViewHolder(RecycleView中)/getView(listView中),通过数据的Flag展示不同的界面
    例如:

public void onBindViewHolder(ViewHolder holder, final int position){
        final BannerListBean banner = mList.get(position);
        //判断广告样式
        switch (banner.getType()){
            case "1":
                //TODO show item1
                break;
            case "2":
                //TODO show item2
                break;
        }
}


  
2. ScrollView + LinearLayout 获取到一个item的数据,往LinearLayout中add一个特定的view
    例如:
 

 LinearLayout.addView(LayoutInflater.from(mContext).inflate(R.layout.item_index_ad_content1,null));


3. 调用第三方框架如:[BRVAH](https://github.com/CymChad/BaseRecyclerViewAdapterHelper)   很好很强大。

4. 在RecycleView中有getItemViewType方法在onCreateViewHolder之前先设置当前item的类型在onCreateViewHolder创建的时候获取到Type值对不同的Type创建不同的ViewHolder
    本文中的多布局就是基于改思路做的一些相关的封装
    
#相关使用 
1. 为每种类型的item创建一个对应的视图模板,继承ItemViewFactory这个工厂类
    如 [Content_1_ItemView](/app/src/main/java/com/launch/alititlewithlist/view/cell/Content_1_ItemView.java)
2. 多布局示例
 

MultiTypeRecyclerAdapter adapter = new MultiTypeRecyclerAdapter();
List<ItemViewFactory> datas = new ArrayList<>();
    
datas.add(new Content_1_ItemView(activity, dataModel));
    ...
datas.add(new Content_6_ItemView(activity, dataModel));
    
adapter.setData(itemList);
recycleView.setAdapter(adapter);


3. 单布局示例
    为了兼容原来的单布局的模式,封装了一个入口用于单布局显示
   

List<DataModel> datas;          //列表中需要显示的数据模型
adapter.singleData(activity, Content_1_ItemView.class, DataModel.class, datas);

Demo地址
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值