У меня есть простое приложение с контейнером основной активности, и в этом контейнере я запускаю фрагмент и 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
и вызовет проблема.