【发布时间】: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