我在@PostConstruct
public void init()
{
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Kolkata"));
}
上使用DividerItemDecoration
。它在两个方向上都可以正常工作,但是它在最后一行项目的底部添加了分隔线,我不希望这样。我看到GridLayout
具有以下参数:
RecyclerView.addItemDecoration
因此,我尝试通过@param index Position in the decoration chain to insert this decoration at. If this value is negative the decoration will be added at the end.
来考虑将装饰从底部到顶部添加,而跳过适配器的最后2个项目。但事实并非如此。
我可以不创建-3
的副本来简单地更改DividerItemDecoration
中的循环迭代吗?
答案 0 :(得分:1)
创建一个新的班级
private class NoBottomDividerItemDecoration extends DividerItemDecoration {
public NoBottomDividerItemDecoration(Context context, int orientation) {
super(context, orientation);
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
if (parent.getChildAdapterPosition(view) == parent.getAdapter().getItemCount() - 1) {
outRect.set(0, 0, 0, 0);
}
}
}
使用此类代替DividerItemDecoration
。这将删除最后的分隔线。