首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewPager2在滑动后不会重新创建ui

ViewPager2在滑动后不会重新创建ui
EN

Stack Overflow用户
提问于 2021-08-27 19:43:05
回答 1查看 34关注 0票数 0

我使用的是viewpager2,在适配器类中单击按钮后,我想要更改按钮的颜色。但是在没有点击按钮的情况下滑动7-8次后,按钮的颜色会发生变化,这样viewpager就不会重新创建ui。下面是我的适配器类:

代码语言:javascript
复制
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的

代码语言:javascript
复制
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

}

}

EN

回答 1

Stack Overflow用户

发布于 2021-08-28 03:41:11

尝试将setOffscreenPageLimit(int limit)设置为0,有关setOffscreenPageLimit和缓存的详细信息,请参阅thisthat

代码语言:javascript
复制
viewpager.setOffscreenPageLimit( 0 ) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68958650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档