实现的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的个数。