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就能执行了