W mojej głównej działalności mam pasek akcji z NAVIGATION_MODE_TABS
. Zawartość każdej karty to element listowy.Transakcje fragmentów, pasek działań i backstack
Chciałbym, aby po kliknięciu listit pojawił się nowy fragment, a tryb paska akcji został zmieniony na NAVIGATION_MODE_STANDARD
(tak, że karty są teraz ukryte).
udało mi się uzyskać to do pracy z następującego kodu:
W metodzie listitemclick:
ActionBar actionBar = getActivity().getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
Fragment albumListFragment = new AlbumListFragment();
albumListFragment.setArguments(bundle);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(android.R.id.content, albumListFragment);
ft.addToBackStack(null);
// Commit the transaction
ft.commit();
Log.i("FragmentList", "Item clicked: " + id);
Problem jest po naciśnięciu przycisku Wstecz, wypustki są nadal ma, poprzedni fragment nie powraca do widoku.
Czy robię coś nie tak ... Czy to ma coś wspólnego z fragmentem backstack? Czy powinienem zrobić to inaczej, czy nawet pominąć backpress?
--Edit--
Dla jasności - Wołam addToBackStack gdy zgłoszę fragmenttransaction.replace, ale po naciśnięciu przycisku Wstecz, poprzedni fragment nie zostanie przywrócony.
Sprawdź ten link raz http://www.vogella.com/articles/Android/article.html#fragments_tutorial – shassss
Dzięki, ale nie jest to szczególnie pomocne w tym pytaniu .. –
Korzystanie z addToBackStack jest tym, czego potrzebujesz. http://developer.android.com/guide/components/fragments.html#Transactions – Frohnzie