介绍
RecyclerView循环视图在应用中可以运用成列表视图、网格试图、瀑布流视图等,基本上一个RecyclerView+Adapter就无敌了。
ListView的缺点是不能设置单独的点击事件,RecyclerView可以定制点击事件这是最大的优点,以及强大的可扩展性是RecyclerView被广泛使用的原因。
使用
依赖注入、页面activity、子项的xml布局、页面xml、RecyclerView.Adapter适配器、数据源。
适配器必须重写的方法是
getItemCount获取列表项数量
onCreateViewHolder创建视图持有者
onBindViewHolder绑定试图持有者
其他具体使用可以看下面的具体代码或者查看官方文档
效果
瀑布流布局
线性布局
网格布局
代码里的图片资源
具体代码
导入依赖
implementation 'com.google.android.material:material:1.1.0'
创建页面activity和页面xml
activity
public class RecyclerViewActivity extends AppCompatActivity implements View.OnClickListener {
private ArrayList<GoodsInfo> arrayList;
RecyclerAdapter adapter;
private RecyclerView recyclerView;
private Button btn_add;
String TAG = "RecyclerViewActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recycler_view);
recyclerView = findViewById(R.id.rv_cyc);
btn_add = findViewById(R.id.btn_add);//按钮
btn_add.setOnClickListener(this);//按钮监听
//布局管理器
GridLayoutManager manager = new GridLayoutManager(this, 2);//网格布局
// StaggeredGridLayoutManager manager=new StaggeredGridLayoutManager(3, LinearLayout.VERTICAL);//瀑布流布局
//LinearLayoutManager manager = new LinearLayoutManager(this, RecyclerView.VERTICAL, false);//线性布局
recyclerView.setLayoutManager(manager);
arrayList = GoodsInfo.getDefaultList();
adapter = new RecyclerAdapter(this, arrayList);
recyclerView.setAdapter(adapter);
recyclerView.setItemAnimator(new DefaultItemAnimator())