在我的主要活動中,我有一個操作欄NAVIGATION_MODE_TABS
。每個選項卡的內容都是一個listfragment。片段交易,操作欄和backstack
我想這樣做是爲了當單擊listitem時,一個新的片段被帶入視圖,並且操作欄模式被更改爲NAVIGATION_MODE_STANDARD
(以便現在隱藏標籤)。
我已經成功地得到這個用下面的代碼工作:
在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);
問題是,當我按下返回按鈕,標籤仍然走了,而前一個片段不會回到視圖中。
我做錯了什麼?是否與片段疊加有關?我是否應該以另一種方式去解決問題,甚至可以推翻後援?
- 編輯 -
爲了清楚 - 我打電話addToBackStack當我打電話fragmenttransaction.replace,但是當我按下返回按鈕,以前的片段是不可恢復的。
檢查此鏈接一次http://www.vogella.com/articles/Android/article.html#fragments_tutorial – shassss 2012-08-04 06:24:59
謝謝,但不是特別有用的這個問題.. – 2012-08-04 07:10:07
使用addToBackStack是你想要的。 http://developer.android.com/guide/components/fragments.html#Transactions – Frohnzie 2012-08-04 16:57:37