RecyclerView學習總結

2021-09-04 13:17:12 字數 3043 閱讀 4305

最基礎的recyclerview使用,共3步

在布局中宣告recycleview

配置recyclerview,setlayoutmanager(linearlayoutmanage); 這個配置是必須的。

設定recyclerview.adapter,這裡我們要注意adapter的幾個重要方法

//建立乙個viewholder。主要是建立與view的繫結

public vh oncreateviewholder

(viewgroup parent,

int viewtype)

;//建立乙個viewholder。主要是建立與view的繫結

public

onbindviewholer

(vh holder,

int position)

;//顯示view,itemview需要顯示的內容

public

intgetitemcount()

;//返回條目的個數

"linearlayoutmanager"

//指定layoutmanager

android:descendantfocusability=

"blocksdescendants"

//viewgroup會覆蓋子類控制項而直接獲得焦點

public

void

onviewdetachedfromwindow

(vh holder)

;//當介面卡建立的view(即列表項view)被視窗分離(即滑動離開了當前視窗介面)就會被呼叫。

public

void

onviewattachedtowindow()

;//當列表項出現到可視介面的時候呼叫。

public

intgetitemviewtype

(int position)

;//獲取在該位置的型別,返回值會在 oncreateviewholder中用到。利用該返回值,可以做一些其他事情,例如mulititype使用來做itemviewadapter的索引。

recycleview的優化。

recycleview.

sethasfixedsize

(true);

//當每個條目的大小相等時,使用這個可以提高效率。

其他方法

recycleview.

additemdecoration

(new

divideritemdecoration

(this

, vertical));

//設定裝飾器

recycleview.

scrolltoposition

(position)

;//滾動到具體的位置

新增分割線

recyclerview.

additemdecoration

(new

myrecycleviewitemdecoration()

);//可以自定義分割線,系統提供了 divideritemdecoration,可滿足常用的需求

自定義分割線

主要實現兩個方法,ondraw 實現分割線的繪製,getitemoffsets 實現itemview的偏移,不設定的話分割線會疊在itemview上。

public

class

myrecycleviewitemdecoration

extends

recyclerview.itemdecoration

}/**

* 這裡是設定itemview的偏移,用於分割線的繪製,否則會疊在itemview的上面

*/@override

public

void

getitemoffsets

(rect outrect, view view, recyclerview parent, recyclerview.state state)

}

使用gridlayoutmanager.spansizelookup可以對於grid每行顯示不同列數進行控制。

例如,第一行顯示一列,其他顯示兩列的情況:

layoutmanager.

setspansizelookup

(new

gridlayoutmanager.spansizelookup()

});

multitype 是乙個不錯的對recyclerview的封裝。使用參考demo.

onetomany 是乙個類對應多個,itemviewholder

原始碼解讀:multitype實現了recyclerview.adapter, multitypeadapter. 將其中方法置為final,通過**模式對映到itemviewbinder來具體實現。

它支援多種不同view混排,原理就是multitypeadapter可以對應多個itemviewbinder. 之間通過typepool關聯,包含了list> classes;list>binders;list> linkers;並對外提供了,register,unregister方法.將類與itemviewbinder建立關聯。

multitypeadapter通過**模式實現typepool,所以multitypeadapter可以根據class查詢對應的itemviewbinder進而實現recyclerview.adapter. 另外,typepool支援乙個類對應多個itemviewbinder,通過linker進行區分具體對應哪乙個itemviewbinder.

總結:對泛型的使用很值得學習。**質量也很高,值得學習。

recyclerview使用完全解析

recyclerview使用解析

recyclerview巢狀使用

Xamarin for android學習總結一

1.adapter就是資料讀入記憶體後的 記憶體中介 2.intend,broadcast,server,provider,activity,執行關係圖 3.toast用於向使用者顯示一些幫助 提示 c 中toast是由其他執行緒呼叫更新ui主線程之用 4.android中ui執行緒與後台執行緒互動...

SOPC Builder Nios學習經驗總結

上的不一致。3.在nois ii中bulid例程hello world都出現了錯誤,錯誤提示為 gdrive c altera kits nios2 components altera nios2 hal src alt busy sleep.c 68 error parse error befor...

RTMPdump(libRTMP)協議學習總結

rtmp協議是乙個網際網路tcp ip五層體系結構中應用層的協議。rtmp協議中基本的資料單元稱為訊息 message 當rtmp協議在網際網路中傳輸資料的時候,訊息會被拆分成更小的單元,稱為訊息塊 chunk 1 訊息 2 訊息塊 在網路上傳輸資料時,訊息需要被拆分成較小的資料塊,才適合在相應的網...