{"id":13396166,"url":"https://github.com/ToxicBakery/ViewPagerTransforms","last_synced_at":"2025-03-13T22:31:51.409Z","repository":{"id":16961339,"uuid":"19723749","full_name":"ToxicBakery/ViewPagerTransforms","owner":"ToxicBakery","description":"Library containing common animations needed for transforming ViewPager scrolling for Android v13+.","archived":false,"fork":false,"pushed_at":"2021-02-17T16:58:37.000Z","size":1390,"stargazers_count":2567,"open_issues_count":8,"forks_count":489,"subscribers_count":96,"default_branch":"master","last_synced_at":"2024-07-31T18:16:45.967Z","etag":null,"topics":["android","kotlin-android","viewpager","viewpagertransforms"],"latest_commit_sha":null,"homepage":"https://toxicbakery.github.io/ViewPagerTransforms/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ToxicBakery.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-13T02:52:53.000Z","updated_at":"2024-07-05T08:36:33.000Z","dependencies_parsed_at":"2022-07-26T01:32:05.973Z","dependency_job_id":null,"html_url":"https://github.com/ToxicBakery/ViewPagerTransforms","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToxicBakery%2FViewPagerTransforms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToxicBakery%2FViewPagerTransforms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToxicBakery%2FViewPagerTransforms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ToxicBakery%2FViewPagerTransforms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ToxicBakery","download_url":"https://codeload.github.com/ToxicBakery/ViewPagerTransforms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221417339,"owners_count":16816863,"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","kotlin-android","viewpager","viewpagertransforms"],"created_at":"2024-07-30T18:00:41.691Z","updated_at":"2024-10-25T10:31:48.050Z","avatar_url":"https://github.com/ToxicBakery.png","language":"Kotlin","readme":"[![CircleCI](https://circleci.com/gh/ToxicBakery/ViewPagerTransforms.svg?style=svg)](https://circleci.com/gh/ToxicBakery/ViewPagerTransforms)\n[![License](https://img.shields.io/badge/license-Apache%202.0%20License-blue.svg)](https://github.com/ToxicBakery/ViewPagerTransforms/blob/master/LICENSE)\n[![Maven Central](https://img.shields.io/maven-metadata/v/https/oss.sonatype.org/content/repositories/releases/com/ToxicBakery/viewpager/transforms/view-pager-transforms/maven-metadata.xml.svg)](https://oss.sonatype.org/content/repositories/releases/com/ToxicBakery/viewpager/transforms/view-pager-transforms)\n\nViewPagerTransforms\n===================\n\nLibrary containing common animations needed for transforming ViewPager scrolling on Android v13+. This library is a rewrite of the [JazzyViewPager](https://github.com/jfeinstein10/JazzyViewPager) library and owes credit of the animation concepts directly to its source. The purpose of this rewrite is to provide an easier to use and extend implementation of ViewPager animations.\n\n![Demo](http://i.imgur.com/rvhE2ns.gif)\n\n# Getting Started (Gradle / Android Studio)\n\nAdd gradle dependency to your application.\n```gradle\nimplementation 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:2.0.24'\n```\n\nAfter configuration, instantiate the transformer animation you wish to use and set it as the [page transformer](https://developer.android.com/reference/android/support/v4/view/ViewPager.html#setpagetransformer_1).\n\n```java\n// Reference (or instantiate) a ViewPager instance and apply a transformer\npager = (ViewPager) findViewById(R.id.container);\npager.setAdapter(mAdapter);\npager.setPageTransformer(true, new RotateUpTransformer());\n```\n\n# Creating Custom Transforms\n\nAll ViewPagerTransform implementations extend [ABaseTransformer](https://github.com/ToxicBakery/ViewPagerTransforms/blob/master/library/src/main/java/com/ToxicBakery/viewpager/transforms/ABaseTransformer.java) providing useful hooks improving readability of animations and basic functionality important when switching between animations. [ABaseTransformer](https://github.com/ToxicBakery/ViewPagerTransforms/blob/master/library/src/main/java/com/ToxicBakery/viewpager/transforms/ABaseTransformer.java) provides three lifecycle hooks and two flags for default handling of hiding offscreen fragments and mimicking the default paging functionality of the ViewPager.\n\n* [onPreTransform(View view, float position)](https://github.com/ToxicBakery/ViewPagerTransforms/blob/master/library/src/main/java/com/ToxicBakery/viewpager/transforms/ABaseTransformer.java#L85)\n  * Default implementation resets the animation state of the fragment to defaults that will place it on the screen if its position permits.\n* [onTransform(View view, float position)](https://github.com/ToxicBakery/ViewPagerTransforms/blob/master/library/src/main/java/com/ToxicBakery/viewpager/transforms/ABaseTransformer.java#L33)\n  * Animations should perform all or most of their work inside this callback.\n* [onPostTransform(View view, float position)](https://github.com/ToxicBakery/ViewPagerTransforms/blob/master/library/src/main/java/com/ToxicBakery/viewpager/transforms/ABaseTransformer.java#L116)\n  * Default implementation does nothing. This provides a logical location for any additional work to be done that is not directly related to the animation.\n\n## Building\nThis project is built with Gradle using the Gradle Wrapper script.\n\n```bash\n./gradlew build\n```\n\n## Creating Local Versions\nYou can modify this project and create local packages with via the maven publish plugin used in the build scripts.\n\n```bash\n./gradlew publishToMavenLocal\n```\n","funding_links":[],"categories":["Index `(light-weight pages)`","Libraries","ViewPager","Index","Java","Libs"],"sub_categories":["\u003cA NAME=\"Animations\"\u003e\u003c/A\u003eAnimations"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FToxicBakery%2FViewPagerTransforms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FToxicBakery%2FViewPagerTransforms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FToxicBakery%2FViewPagerTransforms/lists"}