In meiner Haupttätigkeit habe ich eine Actionbar mit NAVIGATION_MODE_TABS
. Der Inhalt jeder Registerkarte ist ein Listenfragment.Fragment Transaktionen, Actionbar & Backstack
Ich möchte es so machen, dass, wenn ein Listeneintrag angeklickt wird, ein neues Fragment in Sicht gebracht wird, und der Aktionsleistenmodus auf NAVIGATION_MODE_STANDARD
geändert wird (so dass die Registerkarten jetzt ausgeblendet sind).
Ich habe es geschafft, dies mit dem folgenden Code zur Arbeit zu kommen:
Im listitemclick Methode:
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);
Das Problem ist, wenn ich die Zurück-Taste drücken, werden die Laschen noch gegangen und das vorherige Fragment kommt nicht wieder in Sicht.
Mache ich etwas falsch .. Hat es etwas mit dem Fragment Backstack zu tun? Sollte ich es anders machen oder sogar die Rückpressung außer Kraft setzen?
--Edit--
Aus Gründen der Klarheit - Ich rufe addToBackStack wenn ich fragmenttransaction.replace nennen, aber wenn ich die Zurück-Taste drücken, wird das vorherige Fragment nicht wiederhergestellt.
Überprüfen Sie diesen Link einmal http://www.vogella.com/articles/Android/article.html#fragments_tutorial – shassss
Vielen Dank, aber nicht besonders hilfreich für diese Frage .. –
Mit addToBackStack ist was Sie wollen. http://developer.android.com/guide/components/fragments.html#Transactions – Frohnzie