最基礎的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 訊息塊 在網路上傳輸資料時,訊息需要被拆分成較小的資料塊,才適合在相應的網...