gpt4 book ai didi

android - 为什么 notifyDataSetChanged 会炸毁 ViewPager2 中的 PagerTransformer?

转载 作者:行者123 更新时间:2023-12-02 12:52:45 25 4
gpt4 key购买 nike

我正在使用 ViewPager2版本 1.0.0-beta05,带有 RecyclerView.Adapter 和 ZoomOutPageTransformer ,我发现当我们调用 notifyDataSetChanged 时,ViewPager View 炸了。

在 1.0.0-alpha01 版本中,他们说 notifyDataSetChanged 功能齐全(解决了 VP1 错误)

Blowed view

Normal behavior

        pagerAdapter?.clickListener = this
with(pager) {
clipToPadding = false
clipChildren = false
offscreenPageLimit = 3
}
pager.adapter = pagerAdapter
pager.setPageTransformer(ZoomOutPageTransformer())


GlobalScope.launch(Dispatchers.Main) {
// launch a new coroutine in background and continue
repeat(15) {
delay(5000L) // non-blocking delay for 1 second (default time unit is ms)
Log.e("hello", "notify")
pagerAdapter?.notifyDataSetChanged()
}
}

我没有更改数据源,我只是做了这个小测试,问题仍然存在,每次调用 notifyDataSetChanged 后, View 都会随机调整大小。

最佳答案

你找到解决办法了吗?

对我来说,我必须调用ViewPager2requestTransform()功能。
但我需要 post adatper 之后的函数调用。 notifyDataSetChanged() .

...
adapter.notifyDataSetChanged()
vb.viewpager.post {
// I am using Fragment, and I get some crashes while I am switching tabs/fragments,
// so here I reference the `nullable` _vb property
_vb?.viewpager?.requestTransformation()
}

希望这可以帮助。

关于android - 为什么 notifyDataSetChanged 会炸毁 ViewPager2 中的 PagerTransformer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58398356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com