解决FragmentManager is already executing transactions问题

在用viewpager+tablayout+fragment进行fragment嵌套时或者ViewPager2嵌套ViewPager2时

会报错FragmentManager is already executing transactions

可能原因:在fragment里面viewpager的setadapter的时候使用的是
getActivity().getSupportFragmentManager,这时候会和父activity相冲突,应该为:getChildFragmentManager,

在Activity初始化FragmentTabHost的时候,传入了一个fragmentmanager,就是getFragmentManager拿到的,因为tabhost要交互的是第一层的fragment ,是直接和activity相交互的

而在Fragment1里嵌套的viewpager ,因为要交互的是嵌套的Fragment,所以需要拿到ChildFragmentManager才行。

解决方法如下:
我们的fragment由fragmentmanager控制,在一级嵌套中要使用fragmentmanager控制,在第二层fragment中要用fragmentchildmanager控制
在第二层控制的时候,注意不要将嵌套二级fragment的那个一级fragment加入到fragmentchildmannager中,否则就会出现这个问题

   --to: Ly
 

猜你喜欢

转载自blog.csdn.net/Jason_HD/article/details/130242794