Как установить указанный c фрагмент меню BottomNavigation после перенаправления из действия - PullRequest
0 голосов
/ 26 апреля 2020

В моем приложении у меня много меню. Пример A Фрагмент, B Фрагмент, C Фрагмент & D Фрагмент. Это все нижнее меню навигации. Итак, мой вопрос: как мне вернуться к одному из этих фрагментов BottomNavigation?

Пример: я выбрал меню A, теперь фрагмент A активен, там у меня есть какой-то объект, я выбрал объект, и теперь я перенаправлен на активность объекта. Теперь, здесь, в Object Activity, у меня есть кнопка «Назад», поэтому, когда я нажимаю на эту кнопку «Назад», я хочу go вернуться к Фрагменту, а не к главному меню по умолчанию BottomNavigation, я хочу быть перенаправлен туда, где этот Объект отображал Фрагмент А.

Итак, как я могу это сделать. Любое решение для этого.

Я попытался передать дополнительный из Object Activity и получить на HomeActivity, где настроена BottomNavigation.

if(getIntent().getExtras.get("FUN").toString.equals(null){
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.replace(R.id.nav_graph_fragment,new WineShopFragment());
        fragmentTransaction.commitNow();

        bottomNavigationView.setSelectedItemId(R.id.wineShopFragment);

Таким образом, он работает, но после запуска возвращается к фрагменту A, однако, когда я выбираю фрагмент B или фрагмент c или фрагмент D, содержимое фрагмента A также отображается вместе с другим выбранным фрагментом. Если после этого я выберу фрагмент B, фрагменты A и B будут отображаться вместе, перекрывая содержимое дисплея.

Итак, кто-нибудь может сказать мне, как я могу сделать это успешно без указанной выше ошибки?

1 Ответ

0 голосов
/ 27 апреля 2020

Пожалуйста, добавьте addToBackStack() метод во фрагмент

if(getIntent().getExtras.get("FUN").toString.equals(null){
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
        fragmentTransaction.replace(R.id.nav_graph_fragment,new WineShopFragment());
        fragmentTransactin.addToBackStack(null);
        fragmentTransaction.commitNow();

        bottomNavigationView.setSelectedItemId(R.id.wineShopFragment);
}        

Добавьте popBackStack() метод при нажатии backpress в активности объекта вместо вызова намерения homePage

public void backPressClick(){
        //this will pop the last added fragment which is fragmentA in your case
        getSupportFragmentManager().beginTransaction().popBackStack();
}
...