2012-04-13 81 views

回答

34

注意:這是從Android TrainingImplementing Effective Navigation的摘錄。


爲了實現這一點(在Android的3.0或以上)時,可以結合使用一個ViewPagerActionBar選項卡API。

觀察當前頁面變化後,選擇相應的選項卡。您可以在活動的onCreate()方法使用ViewPager.OnPageChangeListener設置此行爲:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    ... 
    mViewPager.setOnPageChangeListener(
      new ViewPager.SimpleOnPageChangeListener() { 
       @Override 
       public void onPageSelected(int position) { 
        // When swiping between pages, select the 
        // corresponding tab. 
        getActionBar().setSelectedNavigationItem(position); 
       } 
      }); 
    ... 
} 

而且在選擇一個選項卡,切換到相應的頁面中ViewPager。要做到這一點,利用newTab()方法創建時,它添加一個ActionBar.TabListener到您的標籤:

actionBar.newTab() 
     ... 
     .setTabListener(new ActionBar.TabListener() { 
      public void onTabSelected(ActionBar.Tab tab, 
        FragmentTransaction ft) { 
       // When the tab is selected, switch to the 
       // corresponding page in the ViewPager. 
       mViewPager.setCurrentItem(tab.getPosition()); 
      } 
      ... 
     })); 
+1

Hi Roman, 請研究一個實現ant adapter的示例,以實現包含多個動態創建/可替換片段的多個窗格佈局。挑戰: - FragmentManager使用資源ID來添加碎片ID在頁面間必須是唯一的(您不能指定ViewGroup實例作爲容器) - 在FragmentManager嘗試恢復片段之前,容器視圖必須存在 - 保留實例與方向更改錯誤 #1:FragmentManager嘗試保存時出現NullPointerException片段狀態; #2:LoaderInfo.onLoadComplete周圍的NullPointerException – user289463 2012-04-13 08:53:57

+1

你應該問這是一個新問題。 – 2012-04-13 15:10:09

+0

如果您將菜單圖標添加到操作欄並使用ViewPager,則會發生奇怪的事情... – Maxim 2013-05-09 05:24:48

12

如果您在下面的Android 3.0針對API,則不能使用上述羅馬的解決方案。

我寫了一個blog post here關於如何使用ActionBarSherlock完成同樣的事情,如果任何人有興趣。

+0

如果您添加Android可壓縮性支持庫http://developer.android.com/tools/extras/support-library.html,則可以使用早期版本的解決方案。使用最新的Eclipse ADT插件,只需右鍵單擊該項目並選擇「Android Tools」>「添加支持庫」即可。該項目必須針對API 14或更高版本(即Android 4+)構建,同時使用例如''在android 2.1上運行。 – ccpizza 2012-12-29 23:25:02

+1

@ JesperB-如果我需要在我的TabHost中實現在Android 2.3.3下的Android應用程序定位API之間實現Swipe,並且不使用ActionBarSherlock,該怎麼辦?你能告訴我一些什麼嗎??? – 2013-01-02 07:12:16

+1

@ JesperB-其實我已經使用tabview的應用程序工作得很好......我只需要更新滑動功能! – 2013-01-02 07:13:38

相關問題