{"id":13396215,"url":"https://github.com/alibaba/UltraViewPager","last_synced_at":"2025-03-13T22:31:51.727Z","repository":{"id":50271102,"uuid":"86585776","full_name":"alibaba/UltraViewPager","owner":"alibaba","description":"UltraViewPager is an extension for ViewPager to provide multiple features in a single ViewPager.","archived":true,"fork":false,"pushed_at":"2021-07-14T04:48:51.000Z","size":8873,"stargazers_count":5005,"open_issues_count":57,"forks_count":678,"subscribers_count":122,"default_branch":"master","last_synced_at":"2024-07-31T18:16:48.274Z","etag":null,"topics":["android","multi-page-switching","tangram","viewpager"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alibaba.png","metadata":{"files":{"readme":"README-ch.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-29T13:31:53.000Z","updated_at":"2024-07-29T04:58:46.000Z","dependencies_parsed_at":"2022-08-24T01:50:23.264Z","dependency_job_id":null,"html_url":"https://github.com/alibaba/UltraViewPager","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2FUltraViewPager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2FUltraViewPager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2FUltraViewPager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alibaba%2FUltraViewPager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alibaba","download_url":"https://codeload.github.com/alibaba/UltraViewPager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243493975,"owners_count":20299750,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","multi-page-switching","tangram","viewpager"],"created_at":"2024-07-30T18:00:42.489Z","updated_at":"2025-03-13T22:31:51.130Z","avatar_url":"https://github.com/alibaba.png","language":"Java","readme":"# 注意，该项目停止维护！！！\n\n### UltraViewPager\n[English Document](README.md)\n\n#### 简介\nUltraViewPager是一个封装多种特性的ViewPager，主要是为多页面切换场景提供统一解决方案。\n\n![Example0](pics/pics1.gif)\n![Example1](pics/pics2.gif)\n![Example0](pics/pics3.gif)\n![Example1](pics/pics4.gif)\n\n#### 主要功能\n\n* 支持横向滑动／纵向滑动\n* 支持一屏内显示多页\n* 支持循环滚动\n* 支持定时滚动，计时器使用Handler实现\n* 支持设置ViewPager的最大宽高\n* setRatio按比例显示UltraviewPager\n* 内置indicator，只需简单设置几个属性就可以完成展示，支持圆点和Icon；\n* 内置两种页面切换动效\n\n以上特性支持同时使用；\n\n#### 设计思路\nUltraViewPager继承自RelativeLayout，将ViewPager和indicator置于其中，同时UltraViewPager提供了一些ViewPager常用方法的代理，这样在日常使用上保持和ViewPager无差异，如果需要调用ViewPager的所有方法，可通过getViewPager()方法拿到真正的ViewPager进行操作.\n\n竖向滑动是通过在ViewPager的onInterceptTouchEvent和onTouchEvent中交换横竖向的event location，同时设置特殊PageTransformer实现，详见源码.\n\n#### 使用方法\n版本请参考mvn repository上的最新版本（目前最新版本是1.0.7.7），最新的 aar 都会发布到 jcenter 和 MavenCentral 上，确保配置了这两个仓库源，然后引入aar依赖：\n\n```\n//gradle\ncompile ('com.alibaba.android:ultraviewpager:1.0.7.7@aar') {\n\ttransitive = true\n}\n\n```\n\n或者maven\n\n```\n//pom.xml in maven\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.alibaba.android\u003c/groupId\u003e\n  \u003cartifactId\u003eultraviewpager\u003c/artifactId\u003e\n  \u003cversion\u003e1.0.7.7\u003c/version\u003e\n  \u003ctype\u003eaar\u003c/type\u003e\n\u003c/dependency\u003e\n\n```\n\n在layout中使用UltraViewPager:\nactivity_pager.xml\n\n```xml\n\u003ccom.tmall.ultraviewpager.UltraViewPager\n    android:id=\"@+id/ultra_viewpager\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:layout_centerInParent=\"true\"\n    android:background=\"@android:color/darker_gray\" /\u003e\n\n```\n\n可以参考以下步骤使用UltraViewPager：\n\n```\nUltraViewPager ultraViewPager = (UltraViewPager)findViewById(R.id.ultra_viewpager);\nultraViewPager.setScrollMode(UltraViewPager.ScrollMode.HORIZONTAL);\n//UltraPagerAdapter 绑定子view到UltraViewPager\nPagerAdapter adapter = new UltraPagerAdapter(false);\nultraViewPager.setAdapter(adapter);\n\n//内置indicator初始化\nultraViewPager.initIndicator();\n//设置indicator样式\nultraViewPager.getIndicator()\n    .setOrientation(UltraViewPager.Orientation.HORIZONTAL)\n    .setFocusColor(Color.GREEN)\n    .setNormalColor(Color.WHITE)\n    .setRadius((int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 5, getResources().getDisplayMetrics()));\n//设置indicator对齐方式\nultraViewPager.getIndicator().setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);\n//构造indicator,绑定到UltraViewPager\nultraViewPager.getIndicator().build();\n\n//设定页面循环播放\nultraViewPager.setInfiniteLoop(true);\n//设定页面自动切换  间隔2秒\nultraViewPager.setAutoScroll(2000);\n\n```\nApi接口详情请参考[文档](ATTRIBUTES-ch.md)\n\n#### FAQ\n* 如何刷新数据? 可以使用一下三种方法的任意一种:\n    * ultraViewPager.refresh();\n    * ultraViewPager.getWrapAdapter().notifyDataSetChanged();\n    * mViewPager.getViewPager().getAdapter().notifyDataSetChanged();\n    \n#### DEMO\n\n[Demo工程](https://github.com/alibaba/UltraViewPager/tree/master/sample)\n\n# 贡献代码\n\n在提 Issue 或者 PR 之前，建议先阅读[Contributing Guide](CONTRIBUTING.md)。按照规范提建议。\n\n#### 开源许可证\n\nUltraViewPager遵循MIT开源许可证协议。\n\n\n\n\n\n\n","funding_links":[],"categories":["Index `(light-weight pages)`","ViewPager","Index"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falibaba%2FUltraViewPager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falibaba%2FUltraViewPager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falibaba%2FUltraViewPager/lists"}