RecyclerView比ListView更高阶且更具灵活性
此元件是一个用于显示庞大资料集的容器,可通过保持有限数量的检视进行非常有效的滚动操作
白话一点就是 可以滚动的清单,内容可随时变更,
1.添加依赖
dependencies { implementation "androidx.recyclerview:recyclerview:1.2.1" implementation "androidx.recyclerview:recyclerview-selection:1.1.0" }
2.在主要显示的mxl 添加元件
<androidx.recyclerview.widget.RecyclerView android:id="@+id/recycleview" android:layout_width="200dp" android:layout_height="200dp"/>
在Layout资料夹底下 添加xml档案 //这xml档案,也可以说是排版,你RecyclerView显示出来的模块的版面模样
还需要一个Adapter来调配
这个Adapter 必须继承 RecyclerView.Adapter
我是觉得这有点不好吸收, 白话文就是 : 我要实现RecyclerView.Adapter的一个类别来複写与设定
private class MyListAdapter extends RecyclerView.Adapter<MyListAdapter.ViewHolder>{}
延续第四点 我的MyListAdapter 会Override 三个方法分别是
@NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.recycle_item,parent,false); return new ViewHolder(view); } @Override //从这里面变更设定内容 引用holder.里面 finID的资料修改 public void onBindViewHolder(@NonNull ViewHolder holder, int position) {// holder.tvId.setText(arrayList.get(position).get("Id"));// holder.tvSub1.setText(arrayList.get(position).get("Sub1"));// holder.tvSub2.setText(arrayList.get(position).get("Sub2")); } @Override //显示条列 public int getItemCount() { return 8; } }
6.再延续第四点 我的MyListAdapter 还需要内部类别 class ViewHolder extends RecyclerView.ViewHolder{}
冷静点 已经没有再延伸了 , 规整出来就是MyListAdapter 有三个方法跟一个内部类别 这样记就好了
class ViewHolder extends RecyclerView.ViewHolder{ private TextView tvId,tvSub1,tvSub2,tvAvg; //这里绑定ID 注意绑定语法不一样 public ViewHolder(@NonNull View itemView) { super(itemView);// tvId = itemView.findViewById(R.id.textView_Id);// tvSub1 = itemView.findViewById(R.id.textView_sub1);// tvSub2 = itemView.findViewById(R.id.textView_sub2);// tvAvg = itemView.findViewById(R.id.textView_avg); }
OK 前置作业已完成~ 接下来要来撰写Main里面的code了先来 宣告找依赖
RecyclerView mRecyclerView;MyListAdapter myListAdapter;mRecyclerView = findViewById(R.id.recycleview);//忘了说 还需要一个 Manager来设定 mRecyclerView.setLayoutManager(new LinearLayoutManager(this));myListAdapter = new MyListAdapter();mRecyclerView.setAdapter(myListAdapter);
这样最基本的RecycleLayout就能执行了