gpt4 book ai didi

android - 在 recyclerview 的 View 之间设置自定义边距

转载 作者:行者123 更新时间:2023-11-29 16:30:57 25 4
gpt4 key购买 nike

我正在尝试制作 recyclerview,我可以在其中根据 android 中的 id 在 View 项目上放置自定义边距

我尝试了具有不同 View 的客户适配器,我们可以将其放入一个回收器 View 中,但我只需要一个 View 并且只想做的是根据 id 在 View 之间放置自定义边距。

if (category_detail.getId()==0){
ViewGroup.MarginLayoutParams marginLayoutParams =
(ViewGroup.MarginLayoutParams) rec_discount.getLayoutParams();
marginLayoutParams.setMargins(0, 500, 0, 0);
rec_discount.setLayoutParams(marginLayoutParams);


}

enter image description here

最佳答案

您可以使用 ItemDecoration 来实现这一点。

public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private int space;

public SpacesItemDecoration(int space) {
this.space = space;
}

@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
outRect.left = space;
outRect.right = space;
outRect.bottom = space;

// Add top margin only for the first item to avoid double space between items
if(parent.getChildAdapterPosition(view) == 0) {
outRect.top = space;
}
}
}

这将在回收器 View 中所有 View 的左侧、右侧和底部添加“空间”像素的边距。您可以根据您的要求进行定制。

要使用这个类,你可以这样做:

recyclerView.addItemDecoration(new SpacesItemDecoration(10));

关于android - 在 recyclerview 的 View 之间设置自定义边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55627225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com