RecyclerView:将Alpha设置为我的所有ImageView,而不是特定的

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

从列表(Cscore)中,我正在检索一个称为“ currentscore”的值;我正在使用此值设置要完全可见的图像与Alpha设置为0.5f的图像之间的界线

例如:CurrentScore = 4

项目0:alpha 1

...

项目4:alpha 1


项目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,而不仅是我给定限制之后的项目(currentscore)。

为什么会这样?

android android-layout kotlin android-recyclerview recycler-adapter
1个回答
0
投票

我不确定这是否是您想要的,但是您可以尝试以下代码吗?

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

    var data = mList[position]
    var currentScore = mList[pos].currentscore

    Picasso.get().load(data.imgurl).into(holder?.currentImage)
    if(position < currentScore) {
        holder?.currentImage.alpha = 1
    } else {
        holder?.currentImage.alpha = 0.5f
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.