安卓開發中RecycleView簡單使用步驟
RecycleView的簡單使用
RecycleView的簡單使用總共分為以下幾個步驟:
- 在Layout中尋找合適位置新增RecycleView(如果輸入RecycleView沒有彈出相關控制元件,可以去新增一下依賴檔案);
- 建立一個recycleView_item.xml檔案,這個檔案是單個recycleView的佈局樣式,比如:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="100dp"
android:orientation="vertical"
android:layout_margin="5dp"
>
<ImageView
android:id="@+id/smsImage"
android:layout_width="50dp"
android:layout_height="50dp"
/>
<TextView
android:id="@+id/smsText"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:textSize="20sp"
/>
</LinearLayout>
定義的是圖片加文字,注意一下,這個layout佈局的高寬需要控制好,防止出現遮擋或者顯示不全的情況。
- 建立一個pojo類,pojo其實就是一個名稱,類裡面採用對映方法,先定義兩個引數,然後通過code->generate->constructor和code->generate->Getter and Setter對定義的引數進行重寫,該pojo類將作為介面卡中List泛型;
- 最最最重要的東西來了,介面卡Adapter。什麼是介面卡,我的理解就是將控制元件與java類聯絡在一起的東西。可能有疑問,不是用findViewById就可以嗎?沒錯的,可是對於recycleView這個控制元件來說,其操作可能比較複雜,需要一個東西去很好的管理這個控制元件。下面通過程式碼來說明介面卡如何配置(最簡單的配置,如果新增事件或者別的東西需要再改動):
public class SmsRecycleViewAdpter extends RecyclerView.Adapter<SmsRecycleViewAdpter.SmsViewHolder> {
private List<Sms_pojo> mDatas;
class SmsViewHolder extends RecyclerView.ViewHolder {
TextView tv;
ImageView imageView;
public SmsViewHolder(@NonNull View itemView) {
super(itemView);
tv = itemView.findViewById(R.id.smsText);
imageView = itemView.findViewById(R.id.smsImage);
}
}
@NonNull
@Override
public SmsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.sms_item, parent, false);
SmsViewHolder holder = new SmsViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull SmsViewHolder holder, int position) {
Sms_pojo sms_pojo = mDatas.get(position);
holder.tv.setText(sms_pojo.getName());
holder.imageView.setImageResource(sms_pojo.getImageId());
}
public SmsRecycleViewAdpter(List<Sms_pojo> datas) {
this.mDatas = datas;
}
@Override
public int getItemCount() {
return mDatas.size();
}
}
建立這個介面卡需要有幾個步驟,並不是對著網上的程式敲進去進行了。首先建立介面卡類並繼承RecyclerView.Adapter沒有什麼毛病,至於後面的泛型,是後新增的 。建立好了介面卡(SmsRecycleViewAdpter)類之後,系統會為我們自動實現下面的方法:
@NonNull
@Override
public Holder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return false;
}
@Override
public void onBindViewHolder(@NonNull Holder holder, int position) {
}
@Override
public int getItemCount() {
return 0;
}
}
接下來需要在該類中建立一個內部Holder類(public),繼承自Holder,Holder的英文翻譯是持有者,我的理解它應該是View管理者,這與它自動建立的構造方法有關。下一步將一起完成介面卡類的設定。
- 首先將介面卡類中自動重寫的方法體中的Holder全部修改為我們建立的Holder類,同時在介面卡類定義那裡新增泛型</中間放置定義的Holder,格式為adapter.holder/>。然後再在定義的holder內部類中初始化控制元件。定義變數List</泛型,這裡就是新增對映pojo類/>,該變數將在介面卡類的建構函式中初始化。onCreateViewHolder()方法作用是將holder 與View繫結,onBindViewHolder()方法是將recycleView_item.xml與holder,這樣就通過holder這個中間量將View與佈局控制元件繫結在一起,呈現的關係為:View->holder->.xml。整個介面卡簡單定義過程就是這樣的。
- 切換到recycleView控制元件所在的佈局檔案所對應的類,建立RecycleView物件,建立List<>,建立佈局管理(線性為LinearLayout,網格的為GridLayout,還有個瀑布流佈局),初始化recycleView物件並設定其分割線,通過addItemDecoration()方法,這裡可以呼叫安卓自帶的分割線,也可以自定義分割線。系統自帶的使用方法:
recyclerView.addItemDecoration(new DividerItemDecoration(mContext,LinearLayoutManager.HORIZONTAL));
自定義分割線方法:
DividerItemDecoration dividerItemDecoration=new DividerItemDecoration(mContext, LinearLayout.HORIZONTAL);
dividerItemDecoration.setDrawable(mContext.getDrawable(R.drawable.divider));
recyclerView.addItemDecoration(dividerItemDecoration);
這裡的R.drawable.divider資原始檔為分割線資原始檔,建立方法為在drawable中建立divider.xml,具體樣式可以自行設定,例如(如果為橫向就設定分割線的寬,縱向就設定分割線的高):
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<size android:width="1dp" />
<solid android:color="#512DA8"/>
</shape>
最後:
如何讓recycleView中出現內容呢,別忘了建立的List<>,通過把pojo對映類放入<>,就可以很輕鬆的實現內容的顯示。比如要新增一組資料,就可以通過pojo類初始化一個物件,然後把該初始化的物件新增進List<>中,例如(我這裡使用的是一個迴圈,顯示20組資料):
list = new ArrayList<pojo>();
for (int i = 0; i < 20; i++) {
Sms_pojo sms_pojo = new Sms_pojo("獲取贊"+i+"個", R.drawable.head);
mdate.add(sms_pojo);
}
這樣操作就能將recycleView進行簡單建立和使用了,與ListView區別就在於內容呈現方式,RecycleView除了線性佈局外還有網格佈局和瀑布流佈局並且切換佈局很方便,只需要修改幾行程式碼就可以了,可以自行百度。
相關文章
- Mongoose簡單使用步驟Go
- 安卓開發第一步:安卓面試題安卓面試題
- Linux下編譯安裝Mysql 5.5的簡單步驟Linux編譯MySql
- 阿里雲直播功能使用步驟簡單記錄阿里
- PostgreSQL簡介及安裝步驟SQL
- 使用React構建簡單專案步驟(Mac 環境)ReactMac
- 安卓開發:安卓底部選單欄的實現,RadioGroup 和Fragment安卓Fragment
- git上傳github簡單操作步驟Github
- APP安卓滲透測試四大步驟APP安卓
- spring 程式開發步驟Spring
- .Net Core Web Api 框架搭建簡單步驟WebAPI框架
- vnc安裝步驟,vnc安裝步驟詳解VNC
- win10系統電腦版安卓模擬器怎麼用_win10安卓模擬器使用步驟Win10安卓
- prometheus 簡單使用及簡單 middleware 開發Prometheus
- 使用Pandas進行資料清理過程的簡單步驟 - sahilfruitwalaUI
- 本地搭建halo模板和外掛開發簡要步驟
- Java開發中的工作流程和步驟Java
- 簡單介紹vscode除錯container中的程式的方法步驟VSCode除錯AI
- 網站怎麼開啟CDN加速?最簡單的步驟分享!網站
- 安裝gulp步驟和使用方法
- webpack基礎講解及簡單搭建步驟Web
- 驅動程式開發步驟
- 安卓開發--AIDL研究安卓AI
- 如何通過幾個簡單的步驟編寫一個漂亮的初級開發者簡歷
- linux下安裝redis 單節點安裝操作步驟LinuxRedis
- Fedora中安裝 Shutter步驟介紹
- .net圖表之ECharts隨筆01-最簡單的使用步驟Echarts
- 安卓基礎開發庫,DevRing使用說明安卓devVR
- 使用Flask開發簡單介面Flask
- xftp安裝步驟,xftp安裝的2大步驟FTP
- flutter開發使用blutter開源庫逆向flutter應用步驟Flutter
- 大資料(Hadoop)元件安裝 Linux環境準備 步驟簡單 詳細大資料Hadoop元件Linux
- Android TV開發總結【RecycleView】AndroidView
- Nagios安裝步驟iOS
- STF 安裝步驟
- anaconda安裝步驟
- Linux 安裝步驟Linux
- Ambari非root使用者安裝步驟