//可见的数量
layoutManager.childCount
//item总数
recyclerView.childCount
adapter?.itemCount
layoutManager.itemCount
manager.childCount (recyclerView.LayoutManager):
//
//recyclerView.LayoutManager类中:
//recyclerView.layoutManager?.childCount : 可见item数
//
/**
* 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.
*
* @return Number of attached children
*/
public int getChildCount() {
return mChildHelper != null ? mChildHelper.getChildCount() : 0;
}
recyclerView.childCount(ViewGroup)
//
//ViewGroup类中:
//val childCount = recyclerView.childCount : 子view数量
//
/**
* Returns the number of children in the group.
*
* @return a positive integer representing the number of children in
* the group
*/
public int getChildCount() {
return mChildrenCount;
}
manager.itemCount (recyclerView.LayoutManager)
//
//recyclerView.LayoutManager类中:
//recyclerView.layoutManager?.itemCount : rv中绑定的数量
// 本质也是调用adapter的getItemCount方法
//
/**
* Returns the number of items in the adapter bound to the parent RecyclerView.
* <p>
* Note that this number is not necessarily equal to
* {@link State#getItemCount() State#getItemCount()}. In methods where {@link State} is
* available, you should use {@link State#getItemCount() State#getItemCount()} instead.
* For more details, check the documentation for
* {@link State#getItemCount() State#getItemCount()}.
*
* @return The number of items in the bound adapter
* @see State#getItemCount()
*/
public int getItemCount() {
final Adapter a = mRecyclerView != null ? mRecyclerView.getAdapter() : null;
return a != null ? a.getItemCount() : 0;
}
adapter.itemCount (recyclerView.Adapter):
//
//recyclerView.Adapter类中:
//adapter.itemCount : rv中所有item数量
//
/**
* Returns the total number of items in the data set held by the adapter.
*
* @return The total number of items in this adapter.
*/
public abstract int getItemCount();