TabLayout滑动标签页

639 阅读1分钟

#使用tabLayout和ViewPager配合实现滑动标签页

效果图如下:

添加依赖:

compile 'com.android.support:design:23.2.0'

activity_tablayout.xml:

可以改变指示器颜色 标签文字颜色 当前选中的标签文字颜色

<android.support.design.widget.TabLayout
    android:id="@+id/tablayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    app:tabIndicatorColor="#ffffff"
    app:tabSelectedTextColor="@color/gray"
    app:tabTextColor="@color/white">

</android.support.design.widget.TabLayout>


<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    >

</android.support.v4.view.ViewPager>

TabLayoutActivity.java

public class TablayoutActivity extends BaseActivity{

private TabLayout mTabLayout;

private ViewPager mViewPager;
private List<Fragment> mFragments;

private String[] mTitles = {"要闻", "英雄联盟", "守望先锋", "NBA", "程序员", "电竞",
        "经济"};

@Override
protected BasePresenter setPresenter() {
    return null;
}

@Override
protected int setContentViewId() {
    return R.layout.activity_tablayout;
}

@Override
protected void initView() {
    mTabLayout= (TabLayout) findViewById(R.id.tablayout);
    //滑动模式当标签很多的时候就一直往后添加,以滑动的效果显示出来
    mTabLayout.setTabMode (TabLayout.MODE_SCROLLABLE);

    mViewPager= (ViewPager) findViewById(R.id.viewpager);

    //预加载
    mViewPager.setOffscreenPageLimit(0);

    //viewpage滑动监听
    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int
                positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {

        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
}

@Override
protected void initData() {
    for (int i = 0; i < mTitles.length; i++) {
        mTabLayout.addTab(mTabLayout.newTab().setText(mTitles[i]));
    }

    mFragments=new ArrayList<>();
    mFragments.add(new OneFragment());
    mFragments.add(new TwoFragment());
    mFragments.add(new ThreeFragment());
    mFragments.add(new FourFragment());
    mFragments.add(new FiveFragment());
    mFragments.add(new SixFragment());
    mFragments.add(new SevenFragment());

    //设置适配器
    mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
        @Override
        public Fragment getItem(int position) {
            return mFragments.get(position);
        }

        @Override
        public int getCount() {
            return mFragments.size();
        }

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

    //加载适配器
    mTabLayout.setupWithViewPager(mViewPager);
}

}