在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( ??? );
}
我如何传递视图参数?
答案 0 :(得分:1)
在onDraw()
中,您正在一张画布上工作。要修改一个孩子,您必须遍历所有父母的孩子。
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; ++i) {
View child = parent.getChildAt(i);
int childAdapterPosition = parent.getChildAdapterPosition(child);
// ...
}