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,清空之前所有,然后就可以了。

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值