1、线性、网格、瀑布
// 1. 线性布局
LinearLayoutManager manager = new LinearLayoutManager(this,
RecyclerView.VERTICAL, false);
//2. 网格布局
GridLayoutManager manager = new GridLayoutManager(this, 2);
//3. 瀑布流布局 orientation:水平 or 竖直
int column = 2;
StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(column,
RecyclerView.VERTICAL);
recyclerView.setLayoutManager(manager);
2、item
<!-- item 示例 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
<ImageView
android:id="@+id/thumbnail"
android:layout_width="200dp"
android:layout_height="192dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/name"
android:text="XXX"
android:textColor="@color/black"
android:textSize="23sp"
/>
</LinearLayout>
3、adapter
@Override
public TestViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if(type==0){
view = LayoutInflater.from(mContext).inflate(R.layout.item,parent,false);
}else {
view = LayoutInflater.from(mContext).inflate(R.layout.item_2,parent,false);
}//...
return new TestViewHolder(view);
}
注意事项
- 图片资源最好不使用mipmap
- 数据变更或布局改变记得调用notifyDataSetChanged()