import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
recyclerView = findViewById(R.id.recyclerView);
MyAdapter adater = new MyAdapter(this);
//参数1 : 上下文
//参数2 : 指明界面显示方向
//参数3 : 反转 false 顺序 true 倒序 1,2,3 3,2,1
//第一种布局管理器 : LinearLayoutManger
recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
//第二种 布局管理器 : GridLayoutManager
//Horizontal 2行 Vertical 2 代表 2列
//recyclerView.setLayoutManager(new GridLayoutManager(this,2,GridLayoutManager.HORIZONTAL,false));
//第三种布局管理器:瀑布流管理器
//recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL));
//添加分割线
recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
recyclerView.setAdapter(adater);
}
}
package com.bwie.recyclerviewdemo;
import android.content.Context;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import org.w3c.dom.Text;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
private Context context;
//存放随机产生的高度
private List<Integer> heightList = new ArrayList<>();
public MyAdapter(Context conext){
this.context = conext;
//随机生成View高度
for (int i = 0;i < 10;++i){
int height = new Random().nextInt(200) + 100;
heightList.add(height);
}
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//创建ViewHolder
//View view = View.inflate(context,R.layout.item,null);
View view = LayoutInflater.from(context).inflate(R.layout.item,parent,false);
ViewHolder viewHolder = new ViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
//将数据绑定viewhoder所持有的控件 TextView
//width height 就是他的属性对象
ViewGroup.LayoutParams params = holder.itemView.getLayoutParams();
//动态去设置它的宽高
params.height = heightList.get(position);
//保存View高度
holder.itemView.setLayoutParams(params);
//根据postion生成不同的颜色
if(position %3 == 0){
holder.itemView.setBackgroundColor(Color.RED);
}else{
holder.itemView.setBackgroundColor(Color.BLUE);
}
holder.tvContent.setText("世界最遥远的距离不是生与死而是我就在你面前,你却不知道我有多帅");
}
@Override
public int getItemCount() {
return 10;//显示的条目数
}
class ViewHolder extends RecyclerView.ViewHolder{
private TextView tvContent;
public ViewHolder(View itemView) {
super(itemView);
tvContent = itemView.findViewById(R.id.tvContent);
}
}
}