recyclerview的任務僅限於**和定位螢幕上的列表項,對於列表項的內容顯示我們還需要借助adapter子類和viewholder子類。
viewholder的作用是容納view檢視。
recyclerview工作需要layoutmanager支援。recyclerview檢視建立好後,要立即交給layoutmanager物件。如前所述, recyclerview 類的任務就是**再利用以及定位螢幕上的 textview 檢視。實際上,定位的任務被委託給了 layoutmanager 。除了在螢幕上定位列表項, layoutmanager 還負責定義螢幕滾動行為。因此,沒有 layoutmanager , recyclerview 也就沒法正常工作了。
recyclerview不會建立檢視,它建立的是viewholder,viewholder有容納view。
viewholder配合recyclerview
recyclerview自己不會建立viewholder,需要adapter來完成。adapter負責建立viewholder,繫結viewholder和模型層資料。
給出一段例子**:
當前例子是在fragment中寫的
public class crimelistfragment extends fragment
private void updateui()
//viewholder對應每乙個item
private class crimeholder extends recyclerview.viewholder implements view.onclicklistener
public void bindcrime(crime crime)
@override
public void onclick(view v)
}private class crimeadapter extends recyclerview.adapter
//當recyclerview需要新的view檢視來顯示列表時,會呼叫oncreateviewholder方法
//也就是說有新的item需要顯示,並且之前為建立過
@override
public crimeholder oncreateviewholder(viewgroup parent, int viewtype)
//將viewholder的view檢視和模型層的資料繫結
@override
public void onbindviewholder(crimeholder holder, int position)
@override
public int getitemcount() }}
fragment_crime_list布局檔案:
list_item_crime布局檔案:
<?xml version="1.0" encoding="utf-8"?>
建立2個內部類。乙個繼承recyclerview.viewholder,另乙個繼承recyclerview.adapter> ;
其中在第乙個類中完成獲取控制項等操作,因為findviewbyid很耗時,所以盡量少在adapter的oncreateviewholder中獲取;
第二個類必須實現oncreateviewholder()、onbindviewholder()、getitemcount()方法,oncreateviewholder()該方法每次在列表項第一次被建立的時候呼叫,在這個方法中進行列表項布局的載入,同時返回乙個viewholder例項。
onbindviewholder()中主要進行資料的繫結,
getitemcount()主要返回列表的個數。
在建立fragment檢視時載入布局並且把recyclerview託管給layoutmanager,設定介面卡。
recyclerview常用控制項
多布局 implementation com.android.support recyclerview v7 28.0.0 recy layout recyclerview findviewbyid r.id.recy layout 首先需要繼承recyclerview.adapter。實現三個方法...
RecyclerView(滾動控制項)的用法
1.首先在build.gradle中新增依賴庫 compile com.android.support recyclerview v7 24.2.1 2.修改activity main.xml android id id recycler view android layout width mayc...
Recyclerview下面跟隨著控制項
最後是實現了recyclerview下面的控制項會跟隨著內容增加而下滑,並且最後超過螢幕時,下面的控制項會粘在螢幕底部 xmlns android android orientation vertical android id id activity main android layout widt...