美文网首页
Android无线循环的ViewPager

Android无线循环的ViewPager

作者: 如若成枫 | 来源:发表于2017-05-18 09:30 被阅读0次

大家项目中应该少不了使用无线循环的ViewPager吧,今天推荐一个无限循环的库,在阿里的仓库下,想必用得一定舒心,如果你需求,赶紧的~~

https://github.com/alibaba/UltraViewPager

简介

UltraViewPager是一个封装多种特性的ViewPager,主要是为多页面切换场景提供统一解决方案。

主要功能

支持横向滑动/纵向滑动

支持一屏内显示多页

支持循环滚动

支持定时滚动,计时器使用Handler实现

支持设置ViewPager的最大宽高

setRatio按比例显示UltraviewPager

内置indicator,只需简单设置几个属性就可以完成展示,支持圆点和Icon;

内置两种页面切换动效

以上特性支持同时使用;

设计思路

UltraViewPager继承自RelativeLayout,将ViewPager和indicator置于其中,同时UltraViewPager提供了一些ViewPager常用方法的代理,这样在日常使用上保持和ViewPager无差异,如果需要调用ViewPager的所有方法,可通过getViewPager()方法拿到真正的ViewPager进行操作.

竖向滑动是通过在ViewPager的onInterceptTouchEvent和onTouchEvent中交换横竖向的event location,同时设置特殊PageTransformer实现,详见源码.

使用方法

版本请参考mvn repository上的最新版本(目前最新版本是1.0.3),最新的 aar 都会发布到 jcenter 和 MavenCentral 上,确保配置了这两个仓库源,然后引入aar依赖:

//gradle

compile ('com.alibaba.android:ultraviewpager:1.0.3@aar') {

transitive = true

}

或者maven

//pom.xml in maven

com.alibaba.android

ultraviewpager

1.0.3

aar

在layout中使用UltraViewPager: activity_pager.xml

可以参考以下步骤使用UltraViewPager:

UltraViewPager ultraViewPager = (UltraViewPager)findViewById(R.id.ultra_viewpager);

ultraViewPager.setScrollMode(UltraViewPager.ScrollMode.HORIZONTAL);

//UltraPagerAdapter 绑定子view到UltraViewPager

PagerAdapter adapter = new UltraPagerAdapter(false);

ultraViewPager.setAdapter(adapter);

//内置indicator初始化

ultraViewPager.initIndicator();

//设置indicator样式

ultraViewPager.getIndicator()

.setOrientation(UltraViewPager.Orientation.HORIZONTAL)

.setFocusColor(Color.GREEN)

.setNormalColor(Color.WHITE)

.setRadius((int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics()));

//设置indicator对齐方式

ultraViewPager.getIndicator().setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);

//构造indicator,绑定到UltraViewPager

ultraViewPager.getIndicator().build();

//设定页面循环播放

ultraViewPager.setInfiniteLoop(true);

//设定页面自动切换  间隔2秒

ultraViewPager.setAutoScroll(2000);

相关文章

网友评论

      本文标题:Android无线循环的ViewPager

      本文链接:https://www.haomeiwen.com/subject/lbzjxxtx.html