Android 如何避免装饰第一排recyclerview
我如何才能不装饰我的recyclerview中的第一行,使我的项目装饰器每隔一行装饰一次呢?在onBindView方法中,测试位置变量是否为0。只需在Android 如何避免装饰第一排recyclerview,android,android-recyclerview,Android,Android Recyclerview,我如何才能不装饰我的recyclerview中的第一行,使我的项目装饰器每隔一行装饰一次呢?在onBindView方法中,测试位置变量是否为0。只需在 @Override public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { int childCount = parent.getChildCount(); for (int i = 0; i < childCount
@Override
public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) {
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
}
}
在您的RecyclerView.Item装饰类中
另外,您还可以在上找到了解更多信息的好方法,只需在您的自定义RecyclerView.ItemDecoration中检查第一个位置和“return”。更确切地说,是这样的:
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
int position = parent.getChildAdapterPosition(view);
if (position == RecyclerView.NO_POSITION || position == 0) {
return;
}
...The rest of your decorator logic goes here...
}
同意科雷尔的回答 我的代码如下所示:
@Override public void getItemOffsets(
Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
int l, t, r, b;
l = leftMargin;
t = topMargin;
r = rightMargin;
b = bottomMargin;
if (mIgnoreAfterLast && parent.getChildAdapterPosition(view) == parent.getAdapter().getItemCount() - 1) {
if (mHorizontal) {
r = 0;
} else {
b = 0;
}
}
if (mIgnoreBeforeFirst && parent.getChildAdapterPosition(view) == 0) {
if (mHorizontal) {
l = 0;
} else {
t = 0;
}
}
outRect.set(l, t, r, b);
}