多布局
关于RecyclerView的基本用法参考下面三篇博客:
Android RecyclerView之代替ListView与GridView
Android RecyclerView之添加Item分割线
Android RecyclerView 的瀑布流式布局
多布局思路:
利用Adapter的getItemViewType()方法返回不同的ViewType在onCreateViewHolder中获取不同的布局返回不同的ViewHolder(在本例子中有三种布局所以就出现了三种ViewHolder)
主要思路代码:
//返回不同的type值
@Override
public int getItemViewType(int position) {
return mList.get(position).type;
}
@Override
public MyRecycleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
MyRecycleViewHolder vh = null;
//判断viewtype类型返回不同Viewholder
switch (viewType) {
case DataModel.TYPE_APPLE:
vh = new MyRecycleViewHolderOne(mInflater.inflate(R.layout.item_one, parent,false));
break;
case DataModel.TYPE_BANANA:
vh = new MyRecycleViewHolderTwo(mInflater.inflate(R.layout.item_two, parent,false));
break;
case DataModel.TYPE_STREWBERRY:
vh = new MyRecycleViewHolderThree(mInflater.inflate(R.layout.item_three, parent,false));
break;
}
return vh;
}
1234567891011121314151617181920212223242526
完整代码展示
因为三种布局类型分别为
一:只有一个图片(水果图)
二:一个图片一个文本(水果图+水果名)
三:一个图片一个文本一个图片(水果图+水果名+Android小机器人)
item布局简单就不展示代码了。
Activity
public class MyRecyleDemo extends AppCompatActivity {
private RecyclerView mRecyclerView;
private MyRecycleAdapter mAdapter;
@Override