1

我有一个使用 StaggeredGridLayoutManager 的 RecyclerView,例如 2 列,我想为第一列和第二列设置不同的背景,如何做到这一点,在此先感谢。

4

2 回答 2

1

Base on this answer, I guess you can try:

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
    StaggeredGridLayoutManager.LayoutParams lp =
            (StaggeredGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();

    switch (lp.getSpanIndex()) {
        case 0:
            holder.itemView.setBackgroundColor(Color.GREEN);
            break;
        case 1:
            holder.itemView.setBackgroundColor(Color.RED);
            break;
    }
}
于 2017-12-18T17:09:37.540 回答
0

我通过设置一个 custom 来解决这个问题RecyclerView.ItemDecoration,覆盖该方法getItemOffsets并用于StaggeredGridLayoutManager.LayoutParams#getSpanIndex设置不同的背景。

于 2017-12-21T09:56:17.023 回答