“回收者视图项目行颜色交替更改

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

我有一个问题,我想让回收商项目的行颜色交替显示。即,如果第一行为白色,第二行为灰色,第三行再次为白色,第四行再次为灰色,依此类推。我尝试了一个代码,但是没有用。请帮助。

这是我的代码,

class ItemAdapter() : RecyclerView.Adapter<ItemAdapter.DateViewHolder>() {

    private var ItemList: MutableList<Items>? = ArrayList()
    private lateinit var ItemViewModel: ItemRowListBinding
    private lateinit var listener: OnItemClickListener

    init {
        this.ItemList = arrayListOf()
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DateViewHolder {
        ItemViewModel = DataBindingUtil.inflate(
            LayoutInflater.from(parent.context), R.layout.item_row_list,
            parent, false
        )
        return DateViewHolder(ItemViewModel)
    }

    override fun onBindViewHolder(holder: DateViewHolder, position: Int) {

        if(position % 2 == 0) {                           
           holder.itemView.setBackgroundResource(R.color.White);
        } else {
           holder.itemView.setBackgroundResource(R.color.Grey);
        }

        holder.bindItemDetail(ItemList!![position])
    }

    override fun getItemCount(): Int {
        return ItemList!!.size
    }

    fun setItemList(scanList: MutableList<Items>) {
        this.ItemList = scanList
        notifyDataSetChanged()
    }


    inner class DateViewHolder(private var itemRowBinding: ItemRowListBinding) :
        RecyclerView.ViewHolder(itemRowBinding.root) {

        fun bindItemDetail(ItemResponse: Items) {

            if (itemRowBinding.ItemDetailViewModel == null) {
                itemRowBinding.ItemDetailViewModel =
                    ItemDetailViewModel(
                        ItemResponse,
                        itemView.context
                    )
            } else {
                itemRowBinding.ItemDetailViewModel!!.setDetail(ItemResponse)
                itemRowBinding.executePendingBindings()
            }

            itemRowBinding.root.Detail.setOnClickListener {
                notifyDataSetChanged()
            }

            itemRowBinding.root.itemLookup.setOnClickListener {
                Log.v(
                    "Clicked_ADAPTER",
                    "Clicked itemLookup adapter :: position -> $adapterPosition"
                )
            }

    }
}

任何帮助将不胜感激。

android kotlin android-recyclerview android-databinding
1个回答
0
投票

使用此

holder.itemView.setBackgroundColor(ContextCompat.getColor(context,R.color.white))
© www.soinside.com 2019 - 2024. All rights reserved.