当RecyclerVIEw有下拉刷新时,有时候设计图上,体现出来的列表有头部布局,这可以通过Adapter实现加载多套布局就可以,这里以加载两种布局为例说明。
先看看Adapter的代码:
import androID.annotation.Suppresslint;import androID.content.Context;import androID.support.v7.Widget.RecyclerVIEw;import androID.vIEw.LayoutInflater;import androID.vIEw.VIEw;import androID.vIEw.VIEwGroup;import androID.Widget.BaseAdapter;import com.alvin.R;import java.util.ArrayList;import java.util.List;public class Mainlistadapter extends RecyclerVIEw.Adapter<RecyclerVIEw.VIEwHolder>{ private List<Data> List; private ArrayList<ItemEntity> jdList; private Context context; public Mainlistadapter(List<Data> List,ArrayList<ItemEntity> jdList,Context context) { this.List = List; this.jdList = jdList; this.context = context; } @OverrIDe public int getItemVIEwType(int position) { return List.get(position).getShowType(); } @OverrIDe public RecyclerVIEw.VIEwHolder onCreateVIEwHolder(VIEwGroup parent,int vIEwType) { if(vIEwType==1){ VIEw vIEw = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_header_main_List,parent,false); return new headerHolder(vIEw); }else{ VIEw vIEw = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_List_main,false); return new VIEwHolderItem(vIEw); } } @OverrIDe public voID onBindVIEwHolder(RecyclerVIEw.VIEwHolder holder,int position) { if(holder instanceof headerHolder){ final headerHolder headerHolder = (headerHolder) holder; //Todo 实现相关逻辑 }else if(holder instanceof VIEwHolderItem){ } } @OverrIDe public int getItemCount() { return List.size(); } private class headerHolder extends RecyclerVIEw.VIEwHolder{ headerHolder(VIEw itemVIEw) { super(itemVIEw); } } private class VIEwHolderItem extends RecyclerVIEw.VIEwHolder{ VIEwHolderItem(VIEw itemVIEw) { super(itemVIEw); } }}
getItemVIEwType()这个返回的是列表当前布局类型,在Adapter加载布局时,对齐进行判断,也就是onBindVIEwHolder()方法中进行相应的判断逻辑实现。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
以上是内存溢出为你收集整理的Android RecyclerView加载两种布局的方法全部内容,希望文章能够帮你解决Android RecyclerView加载两种布局的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)