Android開發筆記 - RecyclerView
阿新 • • 發佈:2018-11-06
概述
RecyclerView是support:recyclerview-v7中提供的滾動控制元件,想要使用該控制元件,需要進行如下工作:
- 引入依賴庫
- 在佈局檔案中加入RecyclerView標籤
- 建立單項佈局檔案
- 建立介面卡類
- 在活動中為Recyclerview設定佈局管理器(LayoutManager)和介面卡
雖談不上繁雜,但對於記性不好的我來說也是很難完全記住,遂寫此筆記。
參考文章
Android RecyclerView 使用完全解析 體驗藝術般的控制元件
一、引入依賴庫
implementation 'com.android.support:recyclerview-v7:27.0.2'
二、在佈局檔案中新增標籤
<android.support.v7.widget.RecyclerView android:id="@+id/rv_mycreation" android:layout_width="match_parent" android:layout_height="match_parent" />
三、建立單項佈局檔案
該佈局檔案是滾動控制元件中每一個條目的佈局,每個條目的值將在介面卡的ViewHolder子類中設定
item_base_use.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="80dp" android:background="#ddebd774" android:orientation="vertical" android:layout_marginBottom="10dp"> <TextView android:id="@+id/item_tx" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
四、建立介面卡類
public class MyRecyclerViewAdapterextends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> list;
public MyAdapter(List<String> list) {
this.list = list;
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// 繫結item佈局
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_base_use, parent, false);
MyAdapter.ViewHolder viewHolder = new MyAdapter.ViewHolder(view);
// 可在此為每個item設定事件監聽
return viewHolder;
}
@Override
public void onBindViewHolder(MyAdapter.ViewHolder holder, int position) {
// 設定控制元件的值
String string = list.get(position);
holder.mText.setText(string);
}
@Override
public int getItemCount() {
// 返回list的長度
return list.size();
}
class ViewHolder extends RecyclerView.ViewHolder {
// 控制元件物件,對應item中的控制元件
TextView mText;
ViewHolder(View itemView) {
super(itemView);
// 繫結控制元件
mText = itemView.findViewById(R.id.item_tx);
}
}
}
五、在活動中為Recyclerview設定佈局管理器(LayoutManager)和介面卡
//通過findViewById拿到RecyclerView例項
mRecyclerView = findViewById(R.id.recyclerView);
//設定RecyclerView管理器
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
//初始化介面卡
mAdapter = new MyRecyclerViewAdapter(list);
//設定新增或刪除item時的動畫,這裡使用預設動畫
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
//設定介面卡
mRecyclerView.setAdapter(mAdapter);