Fragment+ViewPager+ButterKnife时控件会报空指针问题

Fragment+ViewPager+ButterKnife时控件会报空指针问题

首先聊一下ViewPager+Fragment的机制吧,ViewPager在滑动的时候会缓存前后面各一个fragment,也就是说,一共是三个fragment在内存中,而如果滑动的过多的话,与视图fragment距离超过1的fragment就会被回收掉。

那接下来再聊一下ButterKnife在fragment中的绑定,由于Fragment在绑定后,需要在onDestoryView()中进行解绑。

那么这两个问题结合起来就有一个问题了,就是fragment在回收时,会对页面的view进行解绑,当再次利用的时候,之前通过BindView进行绑定的控件就会报出空指针

解决办法:

我的解决办法就是是用原始的findViewBuId()的方法进行控件赋值

如果大家还有更好的办法,还请不吝赐教

你可能感兴趣的:(Android)