RecyclerView詳解 自定義分割線

2021-07-10 00:09:16 字數 1404 閱讀 3082

recyclerview作為listviewgridview的公升級版,google並沒有提供預設的分割線實現,不得不說這是一大遺憾,不過google為我們提供了乙個與之相關的抽象類:

public

static

abstract

class

itemdecoration

public

void

ondrawover(canvas c, recyclerview parent, state state)

public

void

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

}

可以看到有兩個繪製的方法,一般來說我們只需要複寫其中乙個即可:

注意:ondraw()ondrawover()這兩個方法只要手指觸控到螢幕就會被呼叫,而且在滑動時會被多次呼叫; 對於getitemoffsets()而言,假設一屏最多顯示10個item,那麼這個方法只會被呼叫10次。

對於水平和縱向的分割線可以寫在乙個類中,需要時傳入使用型別即可。

**比較簡單,我們直接來看完整**:

public

class

divideritemdecoration

extends

recyclerview.itemdecoration

@override

public

void

ondraw(canvas canvas, recyclerview parent,

recyclerview.state state) else

}@override

public

void

getitemoffsets(rect outrect, view view, recyclerview parent,

recyclerview.state state) else

}private

void

drawhorizontal(canvas canvas, recyclerview parent)

}/**

* 繪製縱向分割線原理參考上面的方法

*/private

void

drawvertical(canvas canvas, recyclerview parent)

}private

intdp2px(context context, float dpval)

}

RecyclerView 快取機制詳解

recyclerview據官方的介紹,該控制項用於在有限的視窗中展示大量資料集,其實這樣功能的控制項我們並不陌生,例如 listview gridview。recyclerview可以用來代替傳統的listview,gridview,更加強大和靈活。recyclerview的使用網上有非常多案例,這...

RecyclerView頂部重新整理實現詳解

recyclerview頂部重新整理的實現通常都是在recyclerview外部再包裹一層布局。在這個外層布局中,還包含乙個自定義的view,作為頂部重新整理時的指示view。也就是說,外層布局中包含兩個child,乙個頂部重新整理view,乙個recyclerview,頂部重新整理view預設是隱...

RecyclerView詳解 自定義動畫

如果覺得自定義比較繁瑣,github上也有相關的動畫實現 接下來我們將一步步分析這個實現類,最後在它的基礎上修改預設的動畫效果。先來看defaultitemanimator中的幾個重要的方法 void runpendinganimations 當有動畫需要執行時呼叫。boolean isrunnin...