addToBackStack не возвращается к правильному фрагменту

#android #fragment-backstack #android-fragment-manager

Вопрос:

здравствуйте, я пытаюсь включить backstack во фрагмент EditProfile, который при нажатии кнопки «Назад» возвращается к фрагменту профиля, но возвращается к домашнему фрагменту

если вы хотите получить дополнительную информацию о коде, пожалуйста, скажите мне, что я обновлю вопрос с полным кодом

Фрагмент профиля

 editProfileButton = relativeLayout.findViewById(R.id.edit_profile_button); // buuton to start editprofile fragment 
        editProfileButton.setOnClickListener(v -> {
            Fragment edit_profile = new Edit_Profile();
            FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
            transaction.replace(R.id.fragment_container, edit_profile);
            transaction.addToBackStack(String.valueOf(new Profile_Fragment())); // i thinked this method of implementing string.valueof will navigate back to the given fragment but as you know it is not working
            transaction.commit();
        });
 

Ответ №1:

Я нашел хорошее объяснение в этом посте в блоге. Вы можете попробовать этот код, а также прочитать о нем больше.

 public void addSubscreen(Fragment fragment) {
    getSupportManager()
        .beginTransaction()
        .replace(R.id.container, fragment)
        .addToBackStack(null)
        .commit();
    subscreensOnTheStack  ;
}


public void popOffSubscreens() {
    while (subscreensOnTheStack > 0) {
        fragments.popBackStackImmediate();
    }
}