Фрагмент перекрывается при второй замене без addtobackstack - PullRequest
0 голосов
/ 15 мая 2019

Сценарий:

  1. Активность добавить фрагмент A к Framelayout.

  2. Фрагмент А заменяет Фрагмент Б.

До шага 2 все работает отлично.

  1. Фрагмент B заменить на Фрагмент B (также пытался заменить на Фрагмент A).

При использовании addToBackStack () на шаге 3 все работает отлично. Выходными данными будут A> B> B (воссозданный)> B (onBackPressed () / popBackStack ())> A.

Но когда я не использую addToBackStack () на шаге 3, вывод будет A> B> B (воссоздан)> A (перекрывается с B).

Есть ли причины, по которым произошло перекрытие?

Активность добавить фрагмент A:

FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

    ChartFragment fragment = new ChartFragment();
    fragmentTransaction.add(R.id.container, fragment);
    fragmentTransaction.commit();    

Фрагмент A заменяет Фрагмент B:

FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();

                        ChildChartFragment fragment = new ChildChartFragment();
                        fragmentTransaction.replace(R.id.container, fragment);
                        fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
                        fragment.setArguments(b);
                        fragmentTransaction.addToBackStack(null);
                        fragmentTransaction.commit();

Воссоздание фрагмента B:

getFragmentManager().beginTransaction().replace(R.id.container, new ChildChartFragment()).commit();

1 Ответ

1 голос
/ 15 мая 2019

Попробуйте установить цвет фона в ваших фрагментах.

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