我設法創建了一個ActionBar選項卡菜單,調用擴展片段的不同類。 問題是,當我改變方向時,在菜單項之間切換什麼都不做。 但我終於明白了這個問題。Android ICS + ActionBar選項卡+方向更改
主要的問題是這裏的老片段不被刪除的方向變化時,所以總有一個未使用的標籤的只是用戶所選擇的選項卡
任何想法以上的副本?我缺少一些基本的東西?
謝謝
我設法創建了一個ActionBar選項卡菜單,調用擴展片段的不同類。 問題是,當我改變方向時,在菜單項之間切換什麼都不做。 但我終於明白了這個問題。Android ICS + ActionBar選項卡+方向更改
主要的問題是這裏的老片段不被刪除的方向變化時,所以總有一個未使用的標籤的只是用戶所選擇的選項卡
任何想法以上的副本?我缺少一些基本的東西?
謝謝
我終於找到了我自己的解決方案,在我的自定義ActionBar.TabListener
類我有ft.add
將添加的片段,以我觀定義的onTabSelected
方法。
當方向改變時,方法onTabUnselected
沒有被調用,所以碎片仍然存在。
更換ft.add
到ft.replace
設法刪除所有舊片段,在新的地方正確顯示。
希望這有助於別人
我認爲這是更好地保存的selectedIndex上的活動娛樂。 這樣你就沒有問題,因爲選擇了相同的索引,而不需要取消選擇,對用戶來說也更好。
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
int i = getActionBar().getSelectedNavigationIndex();
outState.putInt("selectedTabIndex", i);
}
//And then restore
private void initActionBar(Bundle savedInstanceState) {
ActionBar ab = getActionBar();
ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ab.addTab(...);
...
if(savedInstanceState != null) {
int index = savedInstanceState.getInt("selectedTabIndex");
getActionBar().setSelectedNavigationItem(index);
}
有標籤聽者的舊片段(得自onTabUnselected左()不會被調用),並將其分離的構造檢查。有一個專門爲ActionBarSherlock製作的選項卡偵聽器:FragmentTabListener.java。來自API演示的FragmentTabs.java中也有相同的構造函數代碼(沒有支持庫的情況下使用)。