【问题标题】:How to change the value of Alpha when item is clicked inside RecyclerView?在 RecyclerView 中单击项目时如何更改 Alpha 的值?
【发布时间】:2021-10-28 11:24:52
【问题描述】:

单击 RecyclerView 的项目时,我无法弄清楚如何更改 alpha 的值。我想将 alpha 的值从 1 更改为 0.5 。

下面是相同的适配器类。

    package GiftClass
    
    import LeaderboardClass.LeaderboardAdapter
    import android.view.LayoutInflater
    import android.view.View
    import android.view.ViewGroup
    import android.widget.ImageView
    import android.widget.TextView
    import androidx.recyclerview.widget.RecyclerView
    import com.gearsrun.www.R
    import kotlinx.android.synthetic.main.item_gift.view.*
    
    class GiftAdapter(private val giftList: List<Gift>) : RecyclerView.Adapter<GiftAdapter.GiftViewHolder>() {
       private lateinit var mlistener : onItemClickListener
       interface onItemClickListener{
           fun onItemClick(position: Int)
       }
        fun setOnItemClickListener(listener: onItemClickListener){
            mlistener = listener
        }
    
        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GiftViewHolder {
           val itemView = LayoutInflater.from(parent.context).inflate(R.layout.item_gift,parent,false)
            return GiftViewHolder(itemView,mlistener)
        }
    
        override fun onBindViewHolder(holder: GiftViewHolder, position: Int) {
          val currentItem = giftList[position]
            holder.item_img.setImageResource(currentItem.imageResource)
            holder.item_price.text = currentItem.price
            holder.item_soldNum.text = currentItem.sold_num
            holder.item_medal.text = currentItem.medal_num
        }
    
        override fun getItemCount() = giftList.size
    
        class GiftViewHolder(itemView: View,listener:onItemClickListener) : RecyclerView.ViewHolder(itemView){
            val item_img:ImageView = itemView.item_img
            val item_price : TextView = itemView.price
            val item_soldNum : TextView = itemView.sold_num
            val item_medal : TextView = itemView.medal_num
    
            init {
                itemView.setOnClickListener {
                    listener.onItemClick(absoluteAdapterPosition)
                     itemView.alpha = 0.5f
                }
            }
    
        }
    }

感谢添加的参考/建议

【问题讨论】:

  • 在 onClickListener 中,您可以获取属性 itemView.alpha 并根据需要调整 alpha 值
  • @KaruneshPalekar,你好,我的朋友,非常感谢你的及时回复。我正在尝试你的建议,但我无法获得 onItemClick 的 Alpha 值,我无法在适配器文件中找到 onClickListener neigther。你能给我看一个例子吗?非常感谢您的耐心等待!
  • 您需要 alpha 属性的目的是什么?用于更改 ImageView 或整个 View 的 alpha ?
  • @KaruneshPalekar,嗨,我的朋友,感谢您的提示,我已经知道如何制作了! ,我已经修改了我的代码,但是出现了一个新问题...一旦单击该项目的背景颜色变为Alpha,但是,如果您更改为另一个项目,它将无法恢复(这意味着,我只需要该项目选择更改 alpha ) ...请你看看发生了什么,非常感谢。
  • 您希望该项目在单击另一个项目时恢复正常?

标签: android kotlin android-recyclerview alpha


【解决方案1】:

在 onClickListener 中,您可以获取属性 itemView.alpha 并根据需要调整 alpha 值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 2019-06-30
    • 2019-11-23
    相关资源
    最近更新 更多