PagerSlidingTabStrip介绍及使用
1.加入library作为本地包工程,或者加入依赖在build.gradle(我对gradle不是很了解,所以用前面那个导入包的方法) dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' }
2.在你的layout里加入PagerSlidingTabStrip控件,它通常要在ViewPager控件之上 <com.astuetz.PagerSlidingTabStrip android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="48dip" />
3.在你的onCreate方法(或者onCreateView对于一个fragment),绑定PagerSlidingTabStrip控件到ViewPager上 // 初始化ViewPager并且添加适配器 ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(new TestAdapter(getSupportFragmentManager()));
//向ViewPager绑定PagerSlidingTabStrip
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); tabs.setViewPager(pager);
4.(可选的)如果你想在你的ViewPager用到onPageChangeListener监听方法,你应该如下设置,而不是直接用ViewPager设置 // 从上面继续 tabs.setOnPageChangeListener(mPageChangeListener);
个性化设置 为了让你的app不像另一个 Play Store上面的app,你可以添加这些属性来做出自己独具一格的应用。 pstsIndicatorColor Color of the sliding indicator 滑动条的颜色 pstsUnderlineColor Color of the full-width line on the bottom of the view 滑动条所在的那个全宽线的颜色 pstsDividerColor Color of the dividers between tabs 每个标签的分割线的颜色 pstsIndicatorHeightHeight of the sliding indicator 滑动条的高度 pstsUnderlineHeight Height of the full-width line on the bottom of the view 滑动条所在的那个全宽线的高度 pstsDividerPadding Top and bottom padding of the dividers 分割线底部和顶部的填充宽度 pstsTabPaddingLeftRight Left and right padding of each tab 每个标签左右填充宽度 pstsScrollOffset Scroll offset of the selected tab pstsTabBackground Background drawable of each tab, should be a StateListDrawable 每个标签的背景,应该是一个StateListDrawable pstsShouldExpand If set to true, each tab is given the same weight, default false 如果设置为true,每个标签是相同的控件,均匀平分整个屏幕,默认是false pstsTextAllCaps If true, all tab titles will be upper case, default true 如果为true,所有标签都是大写字母,默认为true 所有的属性都有他们自己的getter和setter方法来随时改变他们 1. tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
2. pager = (ViewPager) findViewById(R.id.pager);
3. adapter = new MyPagerAdapter(getSupportFragmentManager());
4. pager.setAdapter(adapter);
5.
6. tabs.setViewPager(pager); 7. public class MyPagerAdapter extends FragmentPagerAdapter {
8.
9. private final String[] TITLES = { "Categories", "Home", "Top Paid", "Top Free", "Top Grossing", "Top New Paid",
10. "Top New Free", "Trending" };
11.
12. public MyPagerAdapter(FragmentManager fm) {
13. super(fm);
14. }
15.
16. @Override
17. public CharSequence getPageTitle(int position) {
18. return TITLES[position];
19. }
20.
21. @Override
22. public int getCount() {
23. return TITLES.length;
24. }
25.
26. @Override
27. public Fragment getItem(int position) {
28. return SuperAwesomeCardFragment.newInstance(position);
29. }
30.
31. }