作者:肯尼亚hanhan | 来源:互联网 | 2023-09-11 19:50
FragmentViewPagerButterKnife时控件会报空指针问题首先聊一下ViewPagerFragment的机制吧,ViewPager在滑动的时候会缓
Fragment+ViewPager+ButterKnife时控件会报空指针问题
首先聊一下ViewPager+Fragment的机制吧,ViewPager在滑动的时候会缓存前后面各一个fragment,也就是说,一共是三个fragment在内存中,而如果滑动的过多的话,与视图fragment距离超过1的fragment就会被回收掉。
那接下来再聊一下ButterKnife在fragment中的绑定,由于Fragment在绑定后,需要在onDestoryView()中进行解绑。
那么这两个问题结合起来就有一个问题了,就是fragment在回收时,会对页面的view进行解绑,当再次利用的时候,之前通过BindView进行绑定的控件就会报出空指针
解决办法:
我的解决办法就是是用原始的findViewBuId()的方法进行控件赋值
如果大家还有更好的办法,还请不吝赐教