Wdrażam BottomNavigationView
do nawigacji w aplikacji na Androida. Używam Fragments, aby ustawić zawartość dla każdej karty.Oddzielny stos tylny dla każdej karty w BottomNavigationView Android przy użyciu fragmentów
Wiem, jak skonfigurować jeden fragment dla każdej karty, a następnie przełączać fragmenty po kliknięciu karty. Ale w jaki sposób mogę mieć osobny tylny stos dla każdej karty? Oto kod ustawić jeden fragment o
Fragment selectedFragment = ItemsFragment.newInstance();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.content, selectedFragment);
transaction.commit();
Na przykład, Fragment
A i B będzie pod języczek 1 i Fragment
C i D na karcie 2. Gdy aplikacja jest uruchomiona, fragment A jest przedstawione i Wybrano kartę 1. Wtedy Fragment
A może zostać zastąpione Fragmentem B. Po zaznaczeniu Tab 2 powinien zostać wyświetlony Fragment C. Jeśli wybrana zostanie wówczas Tab 1, należy ponownie wyświetlić Fragment
B. W tym momencie powinno być możliwe użycie przycisku Wstecz, aby pokazać fragment A.
I Oto kod założyć następny fragment
w tej samej zakładce:
Fragment selectedFragment = ItemsFragment.newInstance();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.content, selectedFragment);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
Niestety, trzeba będzie wdrożyć tego rodzaju przekroju zachowania backstack siebie ... przynajmniej ja tak myślę. – Shark
Zrobiłeś to już wcześniej? –
Nie, moi klienci nigdy nie chcieli tak zepsutego UX, ale mam pomysł. Coś pomiędzy obecnym backstackiem a https: //en.wikipedia.org/wiki/Command_pattern Zasadniczo zachowaj 'HashMap' i dodaj/usuń ze swojego backstacku. Będzie wymagał modyfikacji 'onBackPressed()' i być może/prawdopodobnie nie używając 'addToBackstack()'. –
Shark