我使用的是viewpager2,在适配器类中单击按钮后,我想要更改按钮的颜色。但是在没有点击按钮的情况下滑动7-8次后,按钮的颜色会发生变化,这样viewpager就不会重新创建ui。下面是我的适配器类:
class MyAdapter(private val mData :List<String>) : RecyclerView.Adapter<MyAdapter.MyViewHolder>() {
inner class MyViewHolder(private val binding:ItemDataBinding) :RecyclerView.ViewHolder(binding.root) {
fun bind(data :String) {
binding.mText.text = data
binding.btnclick.setOnClickListener {
binding.btnclick.setBackgroundColor(ContextCompat.getColor(context,R.color.blue))
}
}
}
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
(holder as MyViewHolder).bind(mData[position])
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
val binding = ItemDataBinding.inflate(LayoutInflater.from(parent.context),parent,false)
return MyViewHolder(binding)
}
override fun getItemCount(): Int {
return mData.size
}}
在主要活动中,我是如何声明View pager的
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val data = listOf<String>("s","a","b","c","d","e","f","g","h","ı","i")
val viewpager = findViewById<ViewPager2>(R.id.mViewPager)
val adapter = MyAdapter(data)
viewpager.adapter = adapter
}}
https://stackoverflow.com/questions/68958650
复制相似问题