Два фрагмента меняются одновременно, когда обратно возникают проблемы addToBackStack - PullRequest
0 голосов
/ 12 января 2019

У меня такая ситуация: Два FrameLayout R.id.detail и R.id.master, внутри этого я хочу поставить разные фрагменты. Фрагмент A представляет собой список, и когда я нажимаю на элемент, измените фрагмент A с помощью B, и в то же время я хочу изменить фрагмент F с помощью G. Для этого в MainActivity я использую этот код:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
.
.
AFragment aFragment = AFragment.newInstance(0);
        fragmentManager.beginTransaction()
                .add(R.id.detail_fragment_container, aFragment, TAG_FRAGMENT_PAGE_A)
                .commit();

MasterFragment masterFragment = MasterFragment.newInstance();
        fragmentManager.beginTransaction()
                .add(R.id.master_fragment_container, masterFragment, TAG_MASTER_FRAGMENT)
                .commit();

.
.
}

Внутри фрагмента AF при нажатии на элемент я изменяю фрагмент

    getSupportFragmentManager()
                    .beginTransaction()
                    .addToBackStack(TAG_FRAGMENT_DETAIL_A)
                    .replace(R.id.detail_fragment_container,
                            DetailAFragment.newInstance(position, Id),
                            TAG_FRAGMENT_DETAIL_A)
                    .commit();
//change the lateral fragment master
fragmentManager
            .beginTransaction()
            .addToBackStack(TAG_MASTER_DETAIL_DATA_FRAGMENT)
            .replace(R.id.master_fragment_container, DetailDataFragment.newInstance(mainIDRicetta, mainRicetta),TAG_MASTER_DETAIL_DATA_FRAGMENT)
            .commit();

Когда я нажимаю FAB, я меняю контейнер id.detal, но НЕ id.master

getFragmentManager().beginTransaction()
.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_right)
 .addToBackStack(TAG_FRAGMENT_HEADER_RICETTA)
.replace(R.id.detail_fragment_container, HeaderDetailFragment.newInstance(IDRicetta, ricetta), TAG_FRAGMENT_HEADER_RICETTA)
 .commit();

проблема в том, что когда пользователь нажимает кнопку НАЗАД, некоторое время хорошо работает

AF-> BG -> CG .... back BG ... back AG, но id.master не следует тому же самому, некоторое время остается настройка G и не возвращается F Я пытаюсь другой addToBackStack, но я теряю правильный путь ...

enter image description here

...