Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alibaba/UltraViewPager
UltraViewPager is an extension for ViewPager to provide multiple features in a single ViewPager.
https://github.com/alibaba/UltraViewPager
android multi-page-switching tangram viewpager
Last synced: about 2 months ago
JSON representation
UltraViewPager is an extension for ViewPager to provide multiple features in a single ViewPager.
- Host: GitHub
- URL: https://github.com/alibaba/UltraViewPager
- Owner: alibaba
- License: mit
- Archived: true
- Created: 2017-03-29T13:31:53.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-07-14T04:48:51.000Z (over 3 years ago)
- Last Synced: 2024-07-31T18:16:48.274Z (4 months ago)
- Topics: android, multi-page-switching, tangram, viewpager
- Language: Java
- Size: 8.46 MB
- Stars: 5,005
- Watchers: 122
- Forks: 678
- Open Issues: 57
-
Metadata Files:
- Readme: README-ch.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- -awesome-android-ui - UltraViewPager
- awesome-android-ui - UltraViewPager
- awesome-github-android-ui - UltraViewPager - 封装多种特性的ViewPager (ViewPager)
- awesome-android-ui - UltraViewPager
README
# 注意,该项目停止维护!!!
### UltraViewPager
[English Document](README.md)#### 简介
UltraViewPager是一个封装多种特性的ViewPager,主要是为多页面切换场景提供统一解决方案。![Example0](pics/pics1.gif)
![Example1](pics/pics2.gif)
![Example0](pics/pics3.gif)
![Example1](pics/pics4.gif)#### 主要功能
* 支持横向滑动/纵向滑动
* 支持一屏内显示多页
* 支持循环滚动
* 支持定时滚动,计时器使用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.7.7),最新的 aar 都会发布到 jcenter 和 MavenCentral 上,确保配置了这两个仓库源,然后引入aar依赖:```
//gradle
compile ('com.alibaba.android:ultraviewpager:1.0.7.7@aar') {
transitive = true
}```
或者maven
```
//pom.xml in mavencom.alibaba.android
ultraviewpager
1.0.7.7
aar```
在layout中使用UltraViewPager:
activity_pager.xml```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);```
Api接口详情请参考[文档](ATTRIBUTES-ch.md)#### FAQ
* 如何刷新数据? 可以使用一下三种方法的任意一种:
* ultraViewPager.refresh();
* ultraViewPager.getWrapAdapter().notifyDataSetChanged();
* mViewPager.getViewPager().getAdapter().notifyDataSetChanged();
#### DEMO[Demo工程](https://github.com/alibaba/UltraViewPager/tree/master/sample)
# 贡献代码
在提 Issue 或者 PR 之前,建议先阅读[Contributing Guide](CONTRIBUTING.md)。按照规范提建议。
#### 开源许可证
UltraViewPager遵循MIT开源许可证协议。