依赖 compile 'com.android.support:recyclerview-v7:25.3.1'
Recyclerview:XML
<android.support.v7.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
添加10条假数据
private void initData() {
strings = new ArrayList<>();
for (int i = 0; i <21 ; i++) {
strings.add("i");
}
}
创建Recyclerview适配器:
public class Adap extends RecyclerView.Adapter<Adap.ViewHolder> {
private List<String> strings;
private Context context;
public Adap(List<String> strings, Context context) {
this.strings = strings;
this.context = context;
}
@Override
public Adap.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View inflate = LayoutInflater.from(context).inflate(R.layout.item, parent,false);
ViewHolder holder=new ViewHolder(inflate);
return holder;
}
@Override
public void onBindViewHolder(Adap.ViewHolder holder, int position) {
holder.name.setText(strings.get(position));
Random random = new Random();
int i = random.nextInt(400) + 200;
ViewGroup.LayoutParams Params = holder.itemView.getLayoutParams();
Params.height=i;
holder.itemView.setLayoutParams(Params);
}
@Override
public int getItemCount() {
return strings.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final TextView name;
public ViewHolder(View itemView) {
super(itemView);
name = itemView.findViewById(R.id.name);
}
}
}
private void initAdap() {
StaggeredGridLayoutManager manager = new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);
rv.setLayoutManager(manager);
Adap adap=new Adap(strings,this);
rv.setAdapter(adap);
}