【发布时间】:2021-10-27 16:52:03
【问题描述】:
单击按钮后,我正在使用 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
}
}
【问题讨论】:
标签: android-studio kotlin android-recyclerview android-viewpager2