最新ViewPagerIndicator的使用

在ViewPager盛行的时代,我们经常会见到一个ViewPager的上面有一个导航栏和滚动条

以我对ViewPager的理解,我之前用的都是纯原生的代码来实现,根据ViewPager的滚动监听和导航栏的点击事件,来实现三者的变化

以前我也看过关于ViewPagerIndicator的一些博客,但是实现起来太麻烦了,写的不够清晰。

最近我发现有同事用ViewPagerIndicator,感觉用起来还挺方便的,于是就看了下代码,感觉和以前博客上看的真的相差很大。

其实ViewPagerIndicator用起来挺简单的

以下是代码(我用的是AS)

首先我们要引入三方的包

compile 'com.shizhefei:ViewPagerIndicator:1.1.3'
然后是我们的Layout里使用

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.shizhefei.view.indicator.FixedIndicatorView
        android:id="@+id/vp_title"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="@color/colorAccent" />

  

    <android.support.v4.view.ViewPager
        android:id="@+id/vp_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/vp_title"
        android:background="@color/white_bg" />

</RelativeLayout>
接下来在我们的Activity里面去设置就行了

public class MainActivity extends FragmentActivity {
    //找Id我用的黄油刀
    @Bind(R.id.vp_title)
    FixedIndicatorView vpTitle;
    @Bind(R.id.vp_content)
    ViewPager vpContent;
    private String[] tab;
    private List<Fragment> fragments;
    private Fragment1 fr1, fr2, fr3;
    private FragmentManager fm;
    FragmentTransaction ft;
    private IndicatorViewPager indicatorViewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        initDate();
        initSet();
    }

    /**
     * 初始化布局
     */
    private void initSet() {
    }

    /**
     * 准备数据
     */
    private void initDate() {
        tab = new String[]{"充值", "理财", "回款"};
        fragments = new ArrayList<>();
        fragments.add(fr1 = new Fragment1());
        fragments.add(fr2 = new Fragment1());
        fragments.add(fr3 = new Fragment1());
        fm = getFragmentManager();
        ft = fm.beginTransaction();
//        vpTitle.setScrollBar(new ColorBar(getApplicationContext(), getResources().getColor(R.color.blue_bg), 8));//设置滚动条的颜色,及高度
        vpTitle.setScrollBar(new LayoutBar(this, R.layout.title_image, ScrollBar.Gravity.CENTENT));//滚动条也可以是一个Layout
        float unSelectSize = 14;//Title的文字大小
        int selectColor = getResources().getColor(R.color.blue_bg);//当前显示的Title颜色
        int unSelectColor = getResources().getColor(R.color.red_bg);//未显示的Title颜色
        vpTitle.setOnTransitionListener(new OnTransitionTextListener().setColor(selectColor, unSelectColor).setSize(unSelectSize, unSelectSize));
        //设置文字的颜色,以及大小
        indicatorViewPager = new IndicatorViewPager(vpTitle, vpContent);
        indicatorViewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
        vpContent.setOffscreenPageLimit(tab.length);
        indicatorViewPager.setPageOffscreenLimit(tab.length);
    }

    private class MyAdapter extends IndicatorViewPager.IndicatorFragmentPagerAdapter {
        public MyAdapter(android.support.v4.app.FragmentManager fragmentManager) {
            super(fragmentManager);
        }

        @Override
        public int getCount() {
            return tab.length;
        }

        @Override
        public View getViewForTab(int position, View convertView, ViewGroup container) {
            if (convertView == null) {
                convertView = LayoutInflater.from(MainActivity.this).inflate(R.layout.tab_top, container, false);
            }
            TextView view = (TextView) convertView.findViewById(R.id.tv_tab);
            view.setText(tab[position]);//设置Title的文字
            return convertView;
        }

        @Override
        public Fragment getFragmentForPage(int position) {
            return fragments.get(position);
        }
    }
}
这里我们就实现了导航栏、滚动条、ViewPager三者的关联变换

如果想要酷炫的滚动条,可以将滚动条设置为一个Layout布局 ,(代码在上面)这样你就可以随意定制你的滚动条样式了

下面的代码是我们项目中用到的一个滚动条Layout文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:gravity="center_horizontal|bottom"
    android:orientation="vertical">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/scroll_sj" />

</LinearLayout>
希望我的介绍能够对大家有所帮助










  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ViewPagerIndicator是一个Android库,用于在ViewPager中添加指示器,以帮助用户了解当前页面的位置。它提供了多种指示器样式和自定义选项,可以轻松地与ViewPager集成。它是由Jake Wharton开发的,是一个广泛使用的库。 ### 回答2: ViewPagerIndicator是一个Android库,用于在ViewPager上添加标签指示器。它提供了一种简单而强大的方法来管理ViewPager的标签指示器,帮助用户在不同页面之间进行导航。该库是由Jake Wharton开发的,他是一位著名的Android程序员,也是Square公司的工程师。 使用ViewPagerIndicator可以为ViewPager添加多种类型的标签指示器,如圆形指示器、文字指示器、图片指示器等。你可以根据自己的需求选择合适的标签指示器样式,并自定义其外观和行为。该库支持水平和垂直方向的滑动,并兼容较旧的Android版本。 ViewPagerIndicator使用非常简单,首先需要在项目中引入该库的依赖。然后,在布局文件中添加ViewPager和指示器,通过ViewPagerIndicator提供的适配器类将ViewPager和指示器绑定在一起。最后,你可以根据需要自定义指示器的样式、颜色等属性。 ViewPagerIndicator不仅提供了标签指示器,还包含其他一些有用的功能。例如,你可以通过ViewPagerIndicator轻松实现ViewPager的循环滚动,使第一页和最后一页之间实现无缝连接。此外,该库还支持自定义动画效果和触摸事件处理。 总之,ViewPagerIndicator是一个强大而灵活的Android库,为ViewPager添加标签指示器提供了便利。它可以帮助你更好地管理ViewPager的页面导航,并提供了丰富的自定义选项。无论是初学者还是有经验的Android开发者,都可以轻松地使用ViewPagerIndicator来改善用户界面的体验。 ### 回答3: ViewPagerIndicator是一个开源的视图指示器库,用于辅助在Android应用中实现ViewPager的指示器功能。它与ViewPager控件配合使用,为用户提供了一种方便的方式来切换页面,并显示当前页面的指示器。 ViewPagerIndicator的主要特点是简单易用和高度可定制。它提供了多种指示器样式,包括圆形、线性、文字等等,用户可以根据自己的需求选择合适的样式。同时,它还支持自定义指示器的颜色、大小、边距等属性,使用户可以完全控制指示器的外观。 除了基本的指示器功能之外,ViewPagerIndicator还提供了一些附加功能,如循环滚动、标题栏指示器等。循环滚动功能可以让用户在最后一个页面滑动时自动跳转到第一个页面,实现无限循环。标题栏指示器可以将指示器放置在标题栏上,使得用户可以在顶部直接切换页面,提升用户体验。 ViewPagerIndicator使用也非常简单,只需要在项目中添加相应的依赖库,并在布局文件中配置指示器,然后在代码中设置ViewPager与指示器的关联即可。对于初学者来说,它是一个很好的学习资料,帮助他们快速地了解和使用ViewPager以及指示器的相关知识。 总而言之,ViewPagerIndicator是一个功能强大、简单易用的ViewPager指示器库,为开发者提供了丰富的样式和属性选择,帮助他们快速实现ViewPager的指示器功能,提升应用的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值