如何在Android上的标签之间实施滑动?

Rom*_*rik 26 tabs android android-viewpager

Android 4.0中用于标签的关键设计建议之一是允许在适当的位置之间滑动.此行为使用户可以在选定选项卡的内容上水平滑动以导航到相邻选项卡,而无需直接与选项卡本身进行交互.

如何实施?

Rom*_*rik 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);
                }
            });
    ...
}
Run Code Online (Sandbox Code Playgroud)

选择选项卡后,切换到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());
            }
            ...
        }));
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记:如果你使用API​​等级13及以上,你应该去android-support-v13.jar.它包含android.support.v13.app.FragmentPagerAdapter,它不依赖于支持片段和活动,但可以与"真实"的东西一起使用. (4认同)

Jes*_*erB 12

如果您的目标是Android 3.0以下的API,则无法使用上面的Roman解决方案.

在这里写了一篇博文,讲述了如果有人对此感兴趣,如何用ActionBarSherlock完成同样的事情.