Android RecyclerView加载两种布局的方法
程序员文章站
2024-02-12 22:12:28
当recyclerview有下拉刷新时,有时候设计图上,体现出来的列表有头部布局,这可以通过adapter实现加载多套布局就可以,这里以加载两种布局为例说明。
先看看ad...
当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,parent,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()方法中进行相应的判断逻辑实现。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。