-
設(shè)置RecyclerView 的間隔代碼示例
RecyclerView.addItemDecoration(new RecyclerView.ItemDecoration(){
@override
public void getItemOffsets(Rect outRect,View view , RecyclerView parent, RecyclerView.State state){
? GridLayoutManager.LayoutParams lp = (GridLayoutManager.LayoutParams) view.getLayoutParams();
? int spanSize = lp.getSpanSize();
? int spanIndex = lp.getSpanIndex();
? outRect.top = 20;
? if(spanSize != gridLayoutManager.getSpanCount()){
? ? if(spanIndex ==1){ outRect.left = 10;}else{ outRect.right=10;}
? }
}
});
查看全部 -
GridLayoutManager.SpanSizeLookup的getSpanSize(int position)方法根據(jù)position 配個(gè) RecyclerView的Adapter的getItemViewType(position)方法得到對(duì)應(yīng)position的View類型,進(jìn)而決定返回該View所應(yīng)占用的SpanSize的大?。?/p>
public int getSpanSize(int position){
? int type = mRecyclerView.getAdapter().getItemViewType(position);
? if(type ==DataModel.TYPE_THREE){ return gridLayoutManager.getSpanCount();}
? else { return 1;}
}
查看全部 -
GridLayoutManager中的setSpanSizeLookup(GridLayoutManager.SpanSizeLookup)方法可以根據(jù)position返回每個(gè)Item占用幾個(gè)Span;GridLayoutManager.SpanSizeLookup.getSpanSize(int position)
查看全部 -
GridLayoutManager示例實(shí)現(xiàn)Grid與List混排
查看全部 -
調(diào)試布局的時(shí)候,在開發(fā)者選項(xiàng)中可以打開顯示布局邊界
查看全部 -
多種ViewHolder創(chuàng)建使用示例
查看全部 -
配合三種Item布局,創(chuàng)建三種ViewHolder
查看全部 -
技能點(diǎn):TextView中用tools:text="",指定的text屬性值,在布局預(yù)覽中可以看到,但是在程序運(yùn)行時(shí)是看不到的,達(dá)到預(yù)覽的效果
查看全部 -
創(chuàng)建三種類型的ItemView布局
查看全部 -
RecyclerView 的Adapter中的getItemViewType(int position)代碼示例
查看全部 -
重點(diǎn):
分配好getItemViewType(int position)中的Type;
type只需要時(shí)一個(gè)數(shù)字即可,不一定是連續(xù)的,但必須是唯一的
查看全部 -
與ListView的區(qū)別
查看全部 -
RecyclerView.Recycler:
多個(gè)RecyclerView共用一個(gè)RecycleredPool,
RecycleredPool為RecyclerView的靜態(tài)成員變量
配置緩存Size
查看全部 -
RecyclerView.Recycler:
RecyclerView通過內(nèi)部類Recycler中的Map緩存了Holder
查看全部 -
RecyclerView.Holder 在RecycleView中保存View,包裝了View;
與ListView不同,ListView的cache中保存的是View,而RecyclerView的cache中保存的Holder,在Holder中包裝了一個(gè)View;
Holder中保存著Type,Position,是否需要被緩存的Flag標(biāo)志等信息
查看全部 -
getItemType:
遍歷緩存中的Holder,如果Type與所需要的一致就返回Holder
查看全部
舉報(bào)