У меня такая ситуация:
Два 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, но я теряю правильный путь ...