很简单,但是我找不到真正的原因。
我正在尝试在回收者视图项目中将等级设置为等级栏。但这不起作用,在滚动回收器视图时显示错误的结果(更改颜色)。
XML:
<RatingBar
android:id="@+id/ratingBar"
style="@style/Widget.AppCompat.RatingBar.Small"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:clickable="false"
android:gravity="center"
android:isIndicator="false"
android:numStars="5"
android:stepSize="1.0"
tools:rating="2" />
在适配器中
inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(item: MyItem, position: Int) = with(itemView) {
ratingBar.rating = item.rating // the value is 5f
val drawable = ratingBar.progressDrawable
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
drawable.colorFilter = BlendModeColorFilter(Color.parseColor("#B3055505"), BlendMode.SRC_ATOP)
} else {
drawable.setColorFilter(Color.parseColor("#B3055505"), PorterDuff.Mode.SRC_ATOP);
}
}
}
添加了这一行来解决该问题:
override fun getItemViewType(position: Int): Int {
return position
}
我在这里做错了什么?