Из списка (Cscore) Я получаю определенное значение, называемое «currenttscore»;Я использую это значение, чтобы установить грань между изображениями, которые будут полностью видны, и изображениями с альфа-значением, установленным на 0,5f
Например:
// CurrentScore = 4
Item 0: alpha 1
....
Item 4: alpha 1
Item 5: alpha 0.5f
...
Я делаюэто с RecyclerView с адаптером:
class ImageAdapter(var mList: MutableList<out Cscore>, var pos: Int) : RecyclerView.Adapter<ImageAdapter.ItemViewHolder> () {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder {
var view = LayoutInflater.from(parent?.context).inflate(R.layout.img_layout, parent, false)
return ItemViewHolder(view)
}
override fun onBindViewHolder(holder: ItemViewHolder, position: Int) {
var data = mList[pos]
for (i in 0..data.maxscore) {
Picasso.get().load(data.imgurl).into(holder?.currentImage)
if(i>= data.currentscore) {
holder?.currentImage.alpha = 0.5f
}
}
}
override fun getItemCount(): Int {
return mList.size
}
class ItemViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!) {
var currentImage: ImageView = itemView?.findViewById(R.id.ImageView)!!
}
}
с этим макетом:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/ImageView"
android:layout_width="20dp"
android:layout_height="20dp" />
</LinearLayout>
Проблема здесь заключается между этими строками кода:
if(i>= data.currentscore) {
holder?.currentImage.alpha = 0.5f
}
В итоге все мои ImageViews установлены на alpha = 0.5f, а не только элементы после моего заданного предела (currenttscore).
Почему это происходит?