2015-04-23 36 views
0

我已經使用框架佈局和帶有選項卡的片段創建了示例活動。但是,當我切換到其他活動/片段並返回到相同的活動/片段時,它總是會爲選項卡創建重複的條目或視圖。例如,我有tab1和tab2,當我第一次查看活動時,它會顯示兩個選項卡,但是當我切換到其他活動並返回選項卡活動時,它會顯示四個選項卡,即「tab1,tab2,tab1,tab2」。Android片段每當我回到同一片段時創建重複選項卡

這是我的代碼

public View onCreateView(LayoutInflater Inflater, ViewGroup Container,Bundle savedInstanceState) { 

    if(savedInstanceState==null) { 
     rootView = Inflater.inflate(R.layout.loanapplicationview, Container, false); 

     actionBar = getActivity().getActionBar(); 

     // Hide Actionbar Icon 
     actionBar.setDisplayShowHomeEnabled(true); 

     // Hide Actionbar Title 
     actionBar.setDisplayShowTitleEnabled(true); 

     // Create Actionbar Tabs 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     // Set Tab Icon and Titles 
     Tab1 = actionBar.newTab().setText("Tab1"); 
     Tab2 = actionBar.newTab().setText("Tab2"); 


     // Set Tab Listeners 
     Tab1.setTabListener(new TabListener(fragmentTab1)); 
     Tab2.setTabListener(new TabListener(fragmentTab2)); 


     // Add tabs to actionbar 
     actionBar.addTab(Tab1); 
     actionBar.addTab(Tab2); 

    } 
    return rootView; 
    } 
} 

回答

0

您應該檢查是否增加他們之前存在的標籤。

if (actionBar.getTabCount() == 0) { 
    // Set Tab Icon and Titles 
    Tab1 = actionBar.newTab().setText("Tab1"); 
    Tab2 = actionBar.newTab().setText("Tab2"); 

    // Set Tab Listeners 
    Tab1.setTabListener(new TabListener(fragmentTab1)); 
    Tab2.setTabListener(new TabListener(fragmentTab2)); 

    actionBar.addTab(Tab1); 
    actionBar.addTab(Tab2); 
} 
0

ActionBar().removeAllTabs()將刪除連接到您的ActionBar的所有選項卡。 所以之前addinf新標籤清除以前的使用這種方法

actionBar.removeAllTabs(); 

// Add tabs to actionbar 
    actionBar.addTab(Tab1); 
    actionBar.addTab(Tab2); 
+0

感謝您的輸入,您的解決方案絕對適用於我的代碼。但是,我不想在最初加載時重新加載標籤中的數據。有什麼方法可以顯示相同的數據嗎? –

+0

如果它解決了您的問題 – SathMK

+0

,請將其標記爲有效答案,但我的問題是:「我不想在最初加載時重新加載標籤中的數據,有什麼方法可以顯示相同的數據嗎?」完全由@Dreagen解決..... –