PagerSlidingTabStrip框架实现了标题栏和ViewPager的链接

实现的module效果图:


创建完moudle首先在Gradle文件中导入依赖:

compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
创建activity_main布局文件,创建PagerSlidingTabStrip控件,对其进行操作,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <LinearLayout
        android:layout_weight="1"
        android:layout_width="match_parent"
        android:layout_height="0dp">
        <ImageView
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dp"
            android:src="@drawable/my"
            android:id="@+id/iv_user_main"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        <!-- app:pstsIndicatorColor="@android:color/holo_red_dark"滑动条的颜色
            app:pstsUnderlineColor="@android:color/holo_red_dark" 底边的颜色
            app:pstsDividerColor="@android:color/transparent每个标签的分割线的颜色
            app:pstsIndicatorHeight="5dp"滑动条的高度
            "-->
        <com.astuetz.PagerSlidingTabStrip
            app:pstsIndicatorColor="@android:color/holo_red_dark"
            app:pstsUnderlineColor="@android:color/transparent"
            app:pstsDividerColor="@android:color/transparent"
            app:pstsIndicatorHeight="5dp"
            android:id="@+id/pagerSlidingTabStrip"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </com.astuetz.PagerSlidingTabStrip>
    </LinearLayout>
    <View
        android:background="@android:color/holo_red_dark"
        android:layout_width="match_parent"
        android:layout_height="1.5dp"/>
    <android.support.v4.view.ViewPager
        android:layout_weight="9"
        android:id="@+id/vp_main"
        android:layout_width="match_parent"
        android:layout_height="0dp">

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


</LinearLayout>

在MainActivity.java文件中初始化控件,创建mainViewPagerAdapter适配器,并设置适配器,把ViewPager和PagerSlidingTabStrip绑定,MainActivity.java代码如下:

public class MainActivity extends AppCompatActivity {
    private ViewPager vp;
    private PagerSlidingTabStrip pagerSlidingTabStrip;
    private MainViewPagerAdapter mainViewPagerAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        vp = (ViewPager) findViewById(R.id.vp_main);
        pagerSlidingTabStrip = (PagerSlidingTabStrip) findViewById(R.id.pagerSlidingTabStrip);
        mainViewPagerAdapter = new MainViewPagerAdapter(getSupportFragmentManager());
        vp.setAdapter(mainViewPagerAdapter);
        //把ViewPager和PagerSlidingTabStrip绑定
        pagerSlidingTabStrip.setViewPager(vp);
    }
}

mainViewPagerAdapter适配器代码如下:

public class MainViewPagerAdapter extends FragmentPagerAdapter{
    private String[]title = {"头条","社会","国内","国际","娱乐","体育","军事","科技","财经","时尚"};
    public MainViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    //管理滑动标题的
    public CharSequence getPageTitle(int position) {
        return title[position];
    }

    @Override
    //管理每个item加载的碎片的
    public Fragment getItem(int position) {
        switch(position){
            case 0:
                return new TopFragment();
            case 1:
                return new TopFragment();
            case 2:
                return new TopFragment();
            case 3:
                return new TopFragment();
            case 4:
                return new TopFragment();
            case 5:
                return new TopFragment();
            case 6:
                return new TopFragment();
            case 7:
                return new TopFragment();
            case 8:
                return new TopFragment();
            case 9:
                return new TopFragment();
        }
        return null;
    }

    @Override
    //返回的是页面的数量
    public int getCount() {
        return title.length;
    }
}
在适配器中需要创建fragment碎片,适配器中数组的长度等于fragment的个数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值