android - 回收站 View : sets Alpha to all my ImageViews instead of specific

标签 android android-layout kotlin android-recyclerview

我正在从一个 List(Cscore) 中检索一个名为“currentscore”的特定值;我使用这个值来设置将完全可见的图像与 alpha 设置为 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
}

我最终将我所有的 ImageView 设置为 alpha = 0.5f,而不仅仅是我给定限制 (currentscore) 之后的项目。

为什么会这样?

最佳答案

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

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
    }
}

关于android - 回收站 View : sets Alpha to all my ImageViews instead of specific,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58225615/

相关文章:

java - 通过服务选择的插件架构

android - 具有点击功能的自定义图像按钮

java - 对于java中 fragment 之间的通信, val bundle = bundleOf(..) 相当于什么?

android - 我为android设计的底部 ListView 没有完全显示

android - Firebase数据库搜索未返回任何结果

metadata - 为什么 Kotlin 在 Kotlin 类文件中保存 MetaData?

android - Realm 数据库对移动应用程序有存储限制吗?

java - 谷歌地图在离线模式下的新版本电池消耗

android - 如何为新设计支持库的 FloatingActionButton 制作动画

如果实现 RTL,android Material Edittext 错误出现在左侧