开发项目过程中遇到Fragmnet嵌套Fragment时内容显示紊乱,纠结了一阵子!
常规来说这句代码在正常不过了,不可能是这里的问题,这就像最危险的地方就是最安全的代码,但是问题的源头恰恰
出在我们认为正确的地方。
最后终于发现,问题出现在
WeekAdapter weekAdapter = new WeekAdapter(getActivity().getSupportFragmentManager(),fragmentList,titles);
正确的写法应该是:getActivity().getSupportFragmentManager()改成:WeekAdapter weekAdapter = new WeekAdapter(getChildFragmentManager(),fragmentList,titles);在写Fragment嵌套Fragment时,切记getSupportFragmentManager()需要改成getChildFragmentManager()。 下面是getChildFragmentManager()源码: /** * Return a private FragmentManager for placing and managing Fragments * inside of this Fragment. */ final public FragmentManager getChildFragmentManager() { if (mChildFragmentManager == null) { instantiateChildFragmentManager(); if (mState >= RESUMED) { mChildFragmentManager.dispatchResume(); } else if (mState >= STARTED) { mChildFragmentManager.dispatchStart(); } else if (mState >= ACTIVITY_CREATED) { mChildFragmentManager.dispatchActivityCreated(); } else if (mState >= CREATED) { mChildFragmentManager.dispatchCreate(); } } return mChildFragmentManager; }