26

Android 4.0 中针对选项卡的关键设计建议之一是允许在适当的情况下在它们之间滑动。此行为使用户能够水平滑动选定选项卡的内容以导航到相邻选项卡,而无需直接与选项卡本身交互。

如何实施?

4

2 回答 2

34

注意:这是Android 培训课程实施有效导航的摘录。


要实现这一点(在 Android 3.0 或更高版本中),您可以将ViewPagerActionBar选项卡 API 结合使用。

观察当前页面变化后,选择相应的选项卡。您可以在活动的方法中使用ViewPager.OnPageChangeListener设置此行为onCreate()

@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中的相应页面。为此,请在使用以下方法创建选项卡时将ActionBar.TabListener添加到您的选项卡:newTab()

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());
            }
            ...
        }));
于 2012-04-13T01:58:04.267 回答
12

如果您的目标是 Android 3.0 以下的 API,则不能使用上述 Roman 的解决方案。

如果有人感兴趣,我在这里写了一篇关于如何使用 ActionBarSherlock 完成同样事情的博客文章。

于 2012-11-14T17:15:18.603 回答