zhpanvip / BannerViewPager

🚀 An awesome banner view for Android,Based on ViewPager2. 这可能是全网最好用的ViewPager轮播图。简单、高效,一行代码实现循环轮播,一屏三页任意变,指示器样式任你挑。
Apache License 2.0
3.62k stars 439 forks source link

有一个空指针异常,fragment页面重建的时候状态恢复时adapter是null #179

Closed Dboy233 closed 3 years ago

Dboy233 commented 3 years ago

这是debug截图。我看demo里面的是没有问题。不知道为什么我这里操作就有问题。

我用的JetPack的Navigation导航框架写的fragment

image image

Dboy233 commented 3 years ago

我知道为什么了。

Dboy233 commented 3 years ago

想了想,我觉得这个BannerViewPager 中 setCurrentItem 做一下 mBannerPagerAdapter == null的判断比较好。fragment页面替换后,执行了onDestoryView,触发了保存状态,但是并没有执行onDestory,再次打开这个fragment的时候所有的属性都是null了,但是还是触发了onRestoreInstanceState,在fragment中,有时候逻辑上banner的数据是一直在更新的,恢复状态的时候,更新逻辑还没走完,还没实行初始化banner的代码,onRestoreInstanceState在初始化代码执行前触发了,所以导致了null崩溃。 image