Проблема при быстром переключении между фрагментами - PullRequest
0 голосов
/ 21 декабря 2011

В LinearLayout у меня есть FragmentContainer, а под ним находится RadioGroup, содержащая несколько RadioButton-кнопок.При проверке изменений я заменю текущий фрагмент в контейнере другим фрагментом.Переключение происходит нормально, если проверка выполняется медленно.

Теперь рассмотрим :RadioButtonA => при проверке заменяет контейнер на FragmentARadioButtonB => при проверке заменяет контейнер на FragmentB

Теперь в контейнере есть FragmentA если я изменяю на RadioButtonA-> RadioButtonB, он заменяет FragmentA на FragmentB имгновенно, если я переключаюсь с RadioButtonB-> RadioButtonA , он ДОЛЖЕН заменить FragmentB на FragmentA

Но я получил исключение, сказав:java.lang.IllegalStateException: фрагмент уже добавлен: FragmentA

1 Ответ

0 голосов
/ 22 декабря 2011

Теперь работает нормально. Проблема заключалась в том, что после замены фрагмента я устанавливал переход

fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);

То, что я предполагаю, - то, что переход (для FragmentA) будет все еще работать, когда я переключился на FragmentB.

FragmentA не удаляется из backstack до завершения перехода. В этот момент, если попытаться снова добавить FragmentA, произойдет сбой, поскольку FragmentA еще не удален

Так что не устанавливайте переход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...