recyclerview
作為listview
和gridview
的公升級版,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...