我有一个包含3个项目的水平RecyclerView。 我在我的recyclerView添加了一个位置1的项目,所以现在我有一个带有4个项目的recyclerView。
当我调用RecyclerView.getChildAt(1)时,它返回位置0而不是1的视图。
当我调用RecyclerView.getLayoutManager()。getChildAt(1)时,它返回位置1的视图。
为什么会这样?是否可以重置索引,所以当我调用RecyclerView.getChildAt(1)时,它将返回索引1处的项而不是位置0处的项。
答案 0 :(得分:0)
小心。
RecyclerView.getChildAt(1)引用ViewGroup.getChildAt()
https://developer.android.com/reference/android/view/ViewGroup.html#getChildAt(int)
RecyclerView.getLayoutManager()。getChildAt(1)有不同的行为。
答案 1 :(得分:0)
RecyclerView.getChildAt(int position)获取可见区域的childView,例如,屏幕可以容纳三个itemViews,如果你调用RecyclerView.getChildAt(2),返回的是第二个视图可见区域,但不是适配器的第二个视图,只调用layoutManager.getChildAt(2)可以返回位置2的视图。