目录
瀑布流效果图
使用RecyclerView实现瀑布流布局
RecyclerView的用法
RecyclerView与ListView 类似,都使用Adapter(适配器)来生成列表项,不同的是RecyclerView 使用的是改进的RecyclerView.Adapter,RecyclerView.Adapter需要实现三种方法。
onCreteViewHolder(ViewGroup viewGroup,int i);
此方法用于创建列表项组件。
onBindViewHolder(ViewHolder viewHolder,int i);
此方法用于负责为列表项组件绑定数据,每次组件重新显示出来都会重新执行该方法。
getItemCount();
该方法的返回值决定包含多少个列表项。
Adapter代码示例
public class StaggeredGridAdater extends RecyclerView.Adapter<StaggeredGridAdater.HomeViewHolder> {
private Context mContext;
private List<Home> homeList = new ArrayList<>();
public StaggeredGridAdater(Context context,List<Home> homeList){
this.mContext = context;
this.homeList = homeList;
}
//创建列表组件
@NonNull
@Override
public StaggeredGridAdater.HomeViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.home_item,null);
return new StaggeredGridAdater.HomeViewHolder(view,this);
}
//绑定数据
@Override
public void onBindViewHolder(@NonNull HomeViewHolder holder, int position) {
holder.imageIdIv.setImageResource(homeList.get(position).getImageId());
holder.nameTv.setText(homeList.get(position).getName());
}
//返回列表数据总数
@Override
public int getItemCount() {