TabLayout可以使用A来简化导航。
您可以使用方法为适配器中的每个片段设置选项卡,但是此任务还有另一个更方便,更轻松的方法。TabLayout.newTab()TabLayout.setupWithViewPager()
ViewPager每次调用该方法时,都会根据与您关联的适配器的内容创建和删除选项卡来进行同步。
而且,它将设置一个回调,因此,每次用户翻动页面时,都会选择相应的选项卡。
只需定义一个布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout> <android.support.design.widget.TabLayout android:id="@+id/tabs" app:tabMode="scrollable" /> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="0px" android:layout_weight="1" /> </LinearLayout>
然后实施FragmentPagerAdapter并将其应用于ViewPager:
public class MyViewPagerActivity extends AppCompatActivity { private static final String TAG = MyViewPagerActivity.class.getName(); private MyPagerAdapter mFragmentAdapter; private ViewPager mViewPager; private TabLayout mTabLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.myActivityLayout); // 获取ViewPager并应用PagerAdapter mFragmentAdapter = new MyPagerAdapter(getSupportFragmentManager()); mViewPager = (ViewPager) findViewById(R.id.view_pager); mViewPager.setAdapter(mFragmentAdapter); // 将tabLayout和viewpager链接在一起 mTabLayout = (TabLayout) findViewById(R.id.tab_layout); mTabLayout.setupWithViewPager(mViewPager); } private class MyPagerAdapter extends FragmentPagerAdapter{ public MyPagerAdapter(FragmentManager supportFragmentManager) { super(supportFragmentManager); } // 返回要为该页面显示的片段 @Override public Fragment getItem(int position) { switch(position) { case 0: return new Fragment1(); case 1: return new Fragment2(); case 2: return new Fragment3(); default: return null; } } // 将显示为标签的标签 @Override public CharSequence getPageTitle(int position) { switch(position) { case 0: return "Fragment 1 title"; case 1: return "Fragment 2 title"; case 2: return "Fragment 3 title"; default: return null; } } // 返回总页数 @Override public int getCount() { return 3; } } }