如何使用带有StaggeredGridLayoutManager的RecyclerView设置不同列的不同背景?

问题描述 投票:1回答:2

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

android-recyclerview staggeredgridlayoutmanager
2个回答
1
投票

基于this answer,我想你可以尝试:

@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;
    }
}

0
投票

我通过设置自定义RecyclerView.ItemDecoration来解决这个问题,覆盖方法getItemOffsets并使用StaggeredGridLayoutManager.LayoutParams#getSpanIndexto设置不同的背景。

© www.soinside.com 2019 - 2024. All rights reserved.