我正在尝试为我的应用创建“评论”部分,并正在使用RecyclerView来显示评论。我想为每个RecyclerView项目添加一个左边距,以显示评论所回复的“深度”。我已经使用viewHolder.itemView.setPadding(depth *30, 0, 0, 0);
成功地将填充添加到了每个项目视图持有者,但是没有等效的setMargin
函数。
这就是我现在拥有的:
例如,红线是我要创建边距的位置。
我还需要动态计算保证金。
答案 0 :(得分:2)
您可以将您的项目视图更改为FrameLayout(或类似布局)中的View,以便增加边距实际上可以完成某些事情。但是我的建议是使用RecyclerView.ItemDecoration
对每个视图应用偏移量。
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
Context context = view.getContext();
int indentation = context.getResources().getDimensionPixelSize(R.dimen.indentation);
RecyclerView.ViewHolder holder = parent.getChildViewHolder(view);
outRect.left = indentation * holder.getIndentationLevel();
}
这是假设您具有一个dimen
资源用于单个缩进级别,并且ViewHolder具有该项目的缩进级别。