luckybilly/Gloading

多个Fragment切换时会报异常

Closed this issue · 6 comments

一个Activity中如果有多个Fragment,例如有两个Fragment,第一个fragment没有加载LoadingView,第二个Fragment加载显示LoadingView,切换fragment的时候必定会出现异常奔溃:java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.unFocus(android.view.View)' on a null object reference

看了Fragment的源代码,发现原因了,主要是FragmentManagerlmpl类在提交事务时会执行moveFragmentToExpectedState(Fragment f),在该方法中会执行一段代码将Fragment的container中最上层的fragment的view删除再重新添加,目的就是将这个view的位置放到container的最后。前面的删除view时报错,原因你在container找不到view。这个view是没有被Gloading外包一层FrameLayout的原始View。
希望作者能想办法解决这个问题

wrap的是哪个view?

wrap的是哪个view?

fragment自己的根布局

用holder.getWrapper()来作为rootView, demo示例

用holder.getWrapper()来作为rootView, demo示例

问题的确解决了,谢谢

觉得有用的话,star支持一下呗