Android自定义ViewPager指示器

PagerSlidingTabStrip基于HorizontalScrollView实现ViewPager的tab指示栏?效果,闲话不多说,直接看效果。

AndroidCodeTools (持续更新...)

GitHub:https://github.com/Pgrammerybj/AndroidCodeTools

Android自定义ViewPager指示器_第1张图片
Fragment_02

Android自定义ViewPager指示器_第2张图片
Fragment_03


  • 支持自定义Tab栏的颜色、高度、点击以及条目个数
  • 支持条目文字的大小、颜色设置
  • 支持文字底部横向指示条的颜色、高度以及间距
  • 如需更多功能,请联系我咯

具体调用:

        //真正的实现一行调用,让广大开发者朋友能够happy的做需求。(具体的配置方式可参考库中的demo)
        PagerSlidingTabStrip pagerTitle = (PagerSlidingTabStrip) findViewById(R.id.topic_viewpager_title);
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager_fragment);

        FragmentOne oneF = new FragmentOne();
        FragmentTwo twoF = new FragmentTwo();
        FragmentManager fragmentTransaction = getSupportFragmentManager();
        FragmentViewPagerAdapter pagerAdapter = new FragmentViewPagerAdapter(fragmentTransaction);
        pagerAdapter.add(oneF, getString(R.string.viewpager_one_text));
        pagerAdapter.add(twoF, getString(R.string.viewpager_two_text));

        viewPager.setAdapter(pagerAdapter);
        //将目标viewPager添加到指示器中
        pagerTitle.setViewPager(viewPager);

Xml 布局:

 

FragmentViewPagerAdapter的源码:

private static class FragmentViewPagerAdapter extends android.support.v4.app.FragmentPagerAdapter {
        private List mFragmentList = new ArrayList<>();
        private List mTitleList = new ArrayList<>();

        FragmentViewPagerAdapter(FragmentManager fm) {
            super(fm);
        }

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

        @Override
        public Fragment getItem(int position) {
            return getCount() > position ? mFragmentList.get(position) : null;
        }

        @Override
        public Parcelable saveState() {
            return null;
        }

        @Override
        public void restoreState(Parcelable state, ClassLoader loader) {
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mTitleList.get(position);
        }

        void add(Fragment fragment, CharSequence title) {
            mFragmentList.add(fragment);
            mTitleList.add(title);
        }
    }

后话:

我所想要的就是简洁简单,能让用户上手就能使用不至于其他繁杂的设置来影 响大家的开发进度。PagerSlidingTabStrip目前已经在公司项目中使用(日活3W左右),目前所包含的功能还是比较简单的,还望大家对该控件有什么建议或者意见,大家共同进步。

更多项目:

  • 自定义动画请移步至 AnimationUtils
  • 欢迎关注廖子尧(jeasonlzy)的开源项目okhttp-OkGo

你可能感兴趣的:(Android自定义ViewPager指示器)