RecyclerView基础篇-Api的解释
2020-09-02 本文已影响0人
dashingqi

Manager中的API
val manager = recyclerView.layoutManager as LinearLayoutManager
// 获取到当前可见视图中,第一条数据在Adapter中的角标位置,如果在ItemDecoration设置了Rect的间距,那么这个可见包括这个Rect
val firstVisibleItemPosition = manager.findFirstVisibleItemPosition()
Log.d("firstVisibleItemPosit", "$firstVisibleItemPosition")
//获取到当前可见视图中,最后一条数据在Adapter中的角标位置,同样设置了Rect,那么这个可见包括设置的rect的区域
val lastVisiblePos = manager.findLastVisibleItemPosition()
Log.d("lastVisiblePos", "$lastVisiblePos")
//获取到可见范围内,第一个显示完整的ItemView,对应在Adapter中的position,这个完整区域是报错设置的rect区域
val firstCompletePos = manager.findFirstCompletelyVisibleItemPosition()
Log.d("firstCompletePos", "$firstCompletePos")
//获取到可见范围内,最后一个显示完整的ItemView,对应在Adapter中的position,这个完整区域是报错设置的rect区域
val lastCompletePos = manager.findLastCompletelyVisibleItemPosition()
Log.d("lastCompletePos", "$lastCompletePos")
//获取到的是 所有Item的数量
val itemCount = manager.itemCount
Log.d("itemCount", "$itemCount")
// 该方法获取的childCount 等同于 rv.childCount 获取到的是可见区域内的ItemView数量
val childCount = manager.childCount
Log.d("childCount ", "$childCount")
RV中的Api
// 获取可见区域内,ItemView在适配器中的角标( 实际的角标 ----> view绑定的数据角标是多少,这里获取到的position就是多少)
val childAdapterPosition = parent.getChildAdapterPosition(view)
Log.d("childAdapterPosition = ", "$childAdapterPosition")
//可见区域内的 Item数量
val childCount = parent.childCount
Log.d("childCount = ", "$childCount")
for (index in 0 until childCount) {
//获取可见区域内的ItemView
val itemView = parent.getChildAt(index)
Log.d("itemView --> ", "$itemView")
}