Viewpager в nestedFragment, имеющий исключение remvoeView - PullRequest
0 голосов
/ 27 марта 2020

У меня есть простое приложение с контейнером основной активности, и в этом контейнере я запускаю фрагмент и replace / add с разными фрагментами. Таким образом, один из моих фрагментов - viewpager, который в основном позволяет пользователю сильно ударить.

fm.beginTransaction() //in first fragment
  .add("containerId",x,y)
  .addToBackStack("myfrag1")
  .commit()
fm.beginTransaction() //in second fragment which contains viewpager as a nestedfragment
  .replace("containerId",x,y)
  .addToBackStack("myfrag2")
  .commit()

...
//setup FragmentPagerAdapter adaptor and pass childFragmentManager to it....
...

fm.beginTransaction() //in third fragment 
  .replace("containerId",x,y)
  .addToBackStack("myfrag3")
  .commit()

Мне трудно понять, почему мой просмотрщик внутри фрагмента вылетает из моего приложения, и жалуюсь на removeView .

Когда я возвращаюсь от myfrag3 к myfrag2, вызывается myfrag2 onCreateView и фрагменты для viewpager выдают исключения

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

Я знаю, если я изменюсь replace для myFrag3 до add, мои onCreateView в myFrag2 не будут вызваны таким образом, чтобы избежать этого, но я все еще не знаю, почему replace не убьет мои viewpager и вызовет проблема.

...