主要操作实在Adapter中的。区别于正常RecyclerView的Adapter。首先是定义几个全局的变量来标识有几种布局。
public static final int ONE_ITEM = 1;public static final int TWO_ITEM = 2;public static final int THREE_ITEM = 3;

然后除了正常的方法之外,还要重写getItemViewType的方法,其中根据不同的判断条件来返回不同的结果。
@Override    public int getItemViewType(int position) {        if (list.get(position).getFromtype().equals("2")) {            return TWO_ITEM;        } else if (list.get(position).getFromtype().equals("1")) {            return ONE_ITEM;        } else {            return THREE_ITEM;        }    }
在onCreateViewHolder中也要进行区分,以加载不同的item布局(有几种布局就创建几个ViewHolder)。
@Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        // 给ViewHolder设置布局文件        RecyclerView.ViewHolder holder = null;        if (ONE_ITEM == viewType) {            View v = inflater.inflate(R.layout.layout_dbxianshi, parent, false);            holder = new ViewHolder1(v);        } else if (TWO_ITEM == viewType) {            View v = inflater.inflate(R.layout.layout_dbshenhe, parent, false);            holder = new ViewHolder2(v);        } else {            View v = inflater.inflate(R.layout.layout_dbfj, parent, false);            holder = new ViewHolder3(v);        }        return holder;    }
最后在onBindViewHolder中对每种布局进行不同的操作。
@Override    public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {        DBXQModel model = list.get(position);        if (holder instanceof ViewHolder1) {            ((ViewHolder1) holder).label.setText(model.getLabel());            ((ViewHolder1) holder).content.setText(model.getContent());        } else if (holder instanceof ViewHolder2) {            ((ViewHolder2) holder).label.setText(model.getLabel());            ((ViewHolder2) holder).content.setText(model.getContent());            ((ViewHolder2) holder).name.setText(model.getName());            ((ViewHolder2) holder).time.setText(model.getTime());        } else {            ((ViewHolder3) holder).name_fj.setText(model.getLabel());        }        holder.itemView.setTag(position);    }




更多相关文章

  1. Android中对/data/data//files下文件的读写操作
  2. android 自定义ActionBar
  3. cocos2d-js如何在android平台上使用js直接调用Java方法
  4. Android(安卓)使用Pull方法解析XML文件的方法
  5. android 五大布局-线性布局(LinearLayout)
  6. Android中的信使Messenger的源码解析
  7. (四十三)统计应用具体方法执行时长-Android(安卓)Profiler CPU
  8. Android(安卓)横向列表GridView 实现横向滚动
  9. Android开发:LayoutParams的用法

随机推荐

  1. 类成员重载、全局成员、命名空间声明与访
  2. 数据可视化工具在小学信息技术教学中的实
  3. Python语言的排序算法有哪些?Python学习
  4. Oracle OCP 19c 认证1Z0-083考试题库(第1
  5. CISSP学习:第7章PKI和密码应用
  6. 大华全景枪球联动控制失败问题排查
  7. 2020年,企业数字化转型的思考总结
  8. 2021-2-23:Java 文件映射内存是如何更新到
  9. 2021春节计划复盘-目标设定与任务管理
  10. Horizon虚拟桌面几例故障解决