2012-04-13 75 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

相关问题