【发布时间】:2020-10-04 11:26:20
【问题描述】:
我有一个带有自定义 CircleView 和右侧部分的回收器。我需要以编程方式更改每个项目的右侧背景颜色。列表中的每一项都必须有自己的颜色。
物品右侧代码:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/card_rarity_info"
android:layout_width="0dp"
android:layout_height="78dp"
android:background="@drawable/shape_rarity"
app:layout_constraintBottom_toBottomOf="@id/circle_rarity_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/circle_rarity_color"
app:layout_constraintTop_toTopOf="@id/circle_rarity_color"
tools:backgroundTint="@color/colorPrimary">
<TextView ... />
<TextView ... />
</androidx.constraintlayout.widget.ConstraintLayout>
在回收器视图适配器中设置 backgroundTint:
override fun onBindViewHolder(holder: RaritiesViewHolder, position: Int) {
...
rarities[position].color?.let {
holder.cardRarityInfo.background.setTint(Color.parseColor("#$it"))
}
}
但结果不正确!它为列表中的每个项目设置最后一个项目的颜色
【问题讨论】:
标签: android android-layout android-recyclerview background-color