天天看點

RecyclerView的LinearLayoutManager一些Count函數

getChildCount和getItemsCount之類的函數的差別

繼承自ViewGroup的View是可以包含許多子View的,他們也會存在getChildCount和getItemsCount之類的函數,可以傳回一些與元素數量有關的數值。

不過要特别注意的是這些數值在父視圖包含的子視圖展開形态不同時會有不同的結果。

安卓官網給出的解釋是:

RecycleView Return the current number of child views attached to the parent RecyclerView. This does not include child views that were temporarily detached and/or scrapped.

傳回附加在父RecyclerView上的子視圖的數量。子視圖不包括嵌套子視圖。

經過驗證得出,getChildCount傳回的是目前可見範圍内一共有幾個子View,getItemsCount傳回目前RecyclerView一共會有多少個子View。

第二個很簡單明了,就是傳回目前RecyclerView裡面有多少個items 。

想判斷目前RecyclerView還能不能繼續向下拖動

大概有兩種實作方式。

1

元素的position + 目前頁面可顯示元素數量求和 >= 總數的時候認為滾到底了。

2

第二種,我個人也覺得比較幹淨好用,利用canScrollVertically(int direction)函數的傳回值決定。

direction為1的時候表示判斷能不能向下滾動,-1表示能不能向上滾動。

與此同時還存在相似函數canScrollHorizontally。