NavigationTabStrip嵌套ViewPager+framgent的使用

先上个图看下效果

NavigationTabStrip嵌套ViewPager+framgent的使用


一个带滑动效果的分割线

先加入依赖

compile 'com.github.devlight.navigationtabstrip:library:1.0.1'


布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.gigamole.library.navigationtabstrip.NavigationTabStrip
        android:id="@+id/nts_bottom"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_gravity="center"
        android:background="@color/hui"
        app:nts_active_color="@color/blue"
        app:nts_color="@color/blue"
        app:nts_corners_radius="1.5dp"
        app:nts_factor="2.8"
        app:nts_inactive_color="@color/black2"
        app:nts_titles="@array/titles"
        app:nts_typeface="fonts/drugs.otf"
        app:nts_weight="3dp" />


    <android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/vp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />


</LinearLayout>



public class CouponActivity extends BaseActivity {

    private ViewPager viewPager;
    private NavigationTabStrip mBottomNavigationTabStrip;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentLayout(R.layout.activity_coupons);
        setTitle(PrefConstant.COUPONS);
        showBackImage(true);

        init();
    }



    public void init() {

        ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();

        fragmentList.add(new NoUseFramgent());
        fragmentList.add(new IsUseFramgent());
        fragmentList.add(new ExpireFramgent());

        viewPager = (ViewPager) findViewById(R.id.vp);
        mBottomNavigationTabStrip = (NavigationTabStrip) findViewById(R.id.nts_bottom);

        viewPager.setAdapter(new FragmentAdapter(getSupportFragmentManager(), fragmentList));
        viewPager.setOffscreenPageLimit(2);//预加载个数
        mBottomNavigationTabStrip.setViewPager(viewPager, 0);
        
    }
}

public class FragmentAdapter extends FragmentPagerAdapter {

    ArrayList<Fragment> list;

    public FragmentAdapter(FragmentManager fm, ArrayList<Fragment> lists) {
        super(fm);

        this.list = lists;
    }

    @Override
    public Fragment getItem(int position) {
        return list.get(position);
    }

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

For NTS you can set such parameters as你可以设置如下属性:

  • color:

    allows you to set strip color.设置strip(线条)的颜色

  • size:

    设置title的大小。默认是自动大小。

  • weight:

    设置strip的weight(高度)。

  • factor:

    设置strip的缩放因数。

  • titles:

    设置NavigationTabStrip的标题,即每一个tab。

  • type:

    设置strip的类型-线条还是圆点。

  • gravity:

    设置strip的gravity -  top 还是 bottom

  • view pager:

    把NavigationTabStrip和ViewPager关联。如果你想,也可以设置OnPageChangeListener。

  • typeface:

    设置标题的自定义字体。

  • corners radius:

    设置strip的边角半径。

  • animation duration:

    设置动画持续时间。

  • inactive color:

    设置标题未**时的颜色。

  • active color:

    设置标题**时的颜色

  • tab strip listener:

    在设置tab索引时的开始和结束的监听者。

NavigationTabStrip只使用大写的title。


暂时没找到修改下划线宽度的方法 只好根据title宽度修改