RecyclerView-在ItemDecoration的onDraw方法中获取适配器位置?

时间:2019-06-24 17:30:11

标签: android android-recyclerview

在itemDecoration的on draw方法中,它有一个名为getItemOffsets的重写方法,我可以使用以下方法获取适配器的位置:

@Override
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
    int childCount = parent.getChildCount();
    int position = parent.getChildAdapterPosition(view);
}

但是如果我在onDraw中尝试此方法,

@Override
public void onDraw(@NonNull Canvas c, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
      int position = parent.getChildAdapterPosition(   ???   );
}

我如何传递视图参数?

1 个答案:

答案 0 :(得分:1)

onDraw()中,您正在一张画布上工作。要修改一个孩子,您必须遍历所有父母的孩子。

int childCount = parent.getChildCount();

for (int i = 0; i < childCount; ++i) {
    View child = parent.getChildAt(i);
    int childAdapterPosition = parent.getChildAdapterPosition(child);
    // ...
}