繁体   English   中英

如何使用多个片段实现滑动选项卡导航

[英]How to implement sliding tab navigation with multiple fragments

我想在我的应用程序中添加一些适当的导航。 我有两个片段,我想制作一个标题条标签 (类似于Play报亭或具有材料设计的Play商店),可在两个片段之间切换。 我对ViewPagerPagerAdapter没有很好的理解。 我也在尝试使用这个库 我不知道从哪里开始。 提前致谢。

我实际上曾经做过一次。 好的。

首先,将库添加到build.gradle文件中的依赖项中。

dependencies {
    compile 'com.jpardogo.materialtabstrip:library:1.0.6'
}

这就是我的activity_main.xml的样子。 我添加了PagerSlidingTabStrip (我自己的自定义,请参阅Github repo了解更多信息)和我的ViewPager来自支持库。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"
tools:ignore="MergeRootFrame"
android:fitsSystemWindows="true" >

<include layout="@layout/toolbar" />

<com.astuetz.PagerSlidingTabStrip
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:background="#33B5E5"
    android:textColor="#FFFFFF"
    app:pstsIndicatorColor="#FFFFFF"
    app:pstsPaddingMiddle="true" />

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

接下来,我在MainActivity.javaonCreate()方法中执行了以下步骤:

    // Initialize the ViewPager and set an adapter
    ViewPager pager = (ViewPager) findViewById(R.id.pager);
    pager.setAdapter(new PagerAdapter(getSupportFragmentManager()));

    // Bind the tabs to the ViewPager
    PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
    tabs.setViewPager(pager);

最后, FragmentPagerAdapter类,也在MainActivity.java中 注意Fragment getItem()方法; 这是我使用选项卡的位置在片段之间切换的地方。

class PagerAdapter extends FragmentPagerAdapter {

private final String[] TITLES = {"Regular Tenses", "Perfect Tenses"};

public PagerAdapter(FragmentManager fm) {
    super(fm);
}

@Override
public CharSequence getPageTitle(int position) {
    return TITLES[position];
}

@Override
public int getCount() {
    return TITLES.length;
}

@Override
public Fragment getItem(int position) {
    switch (position) {
        case 0:
            return new MainFragment();
        case 1:
            return new PerfectFragment();
    }

    return null;
   }
}

如果您的应用程序具有ActionBar,则可以使用setNavigationMode(NAVIGATION_MODE_TABS) 这里有一个片断代码示例和解释,在添加导航选项卡字幕。 这里是ActionBar的可滑动标签。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM