int android.view.View.mViewFlags NUll指针的问题解决办法

1.首先我的问题出现的原因

我的主界面用的是ViewPager+Fragment+Button切换的,通过hide与show方式,切换Fragment。

然后在Fragment中,我又用了一个tablayout+viewpager+fragment切换的方式,切换展示内容。

刚开始没发现这个bug,但是第二次打开App就会发现这个bug,而且这个bug定位基本定不到,一头的雾水。

在网上查了好多的解决办法,但基本的解决办法都是一种思路如下:

new Handler().post(new Runnable() {
     public void run() {
         parent.removeView(decoration);
     }
});

我改成这样的了,在viewpager OnPagerChangListener中就是viewpager中添加子视图

new Handler().post(new Runnable() {
     public void run() {
         viewpager.removeView(fraglist.get(position).getView());
     }
});

然后我发现,真的管用唉,但是当你去其他页面在切换回来的时候又出现了这个问题,嗷嗷哦,最终我发现这种解决办法只试用Activity中第一层的fragment,不适用于这种循环嵌套。

还有一种办法,比较麻烦的办法就是,把第一层的fragment替换成view,第二层也替换成view,然后再进行嵌套,我就不写了,抽空写了博客没时间了,讲一下思路,就是fragment 不是有个return view吗,咱们搞一个BasePager,两个方法一个getView() 一个是DataInView(),加载完数据,用pagerAdapter就可以了,做了一个demo,然后各种替换,又出现了新的问题,就是基本和上面的一样的效果,我就抑郁了。

没办法第二天项目就得验收,就用了button+fragment切换,用的还是hide+show方式切换,但是问题问题又出现了,第三页以后会页面重叠,what are you 弄啥嘞,气的不行,然后各种百度,说什么的都有,什么保存数据状态,防止fragment重新创建实例,但是还是不行,加tag再在内存中取出来,还是不行,最后我用的是replace,清空之前所有,然后就可以了。

谁有更好的办法?能告诉我一下,交流一下呗。



你可能感兴趣的:(android)