# florent37/materialviewpager

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/florent37-materialviewpager).**

8,079 stars · 1,462 forks · Java · Apache-2.0 · archived

## Links

- GitHub: https://github.com/florent37/MaterialViewPager
- Homepage: https://www.fiches-plateau-moto.fr
- awesome-repositories: https://awesome-repositories.com/repository/florent37-materialviewpager.md

## Topics

`android` `java` `kenburnsview` `material` `materialviewpager` `parallax` `scroll` `toolbar` `viewpager`

## Description

MaterialViewPager is a library that creates a scrollable, swipeable interface with an animated header image, toolbar, and logo following Material Design guidelines. It provides a complete implementation of a Material Design ViewPager, where the header background color and image animate as the user swipes between pages.

The library coordinates scroll-driven header animations by synchronising scroll offsets from the ViewPager and attached scrollable views through a central coordinator. It supports fragment-based page composition, allowing each page to have independent content layouts while sharing a common header. The toolbar behavior can be configured to hide, stick, or become transparent based on scroll position, managed through a finite state machine driven by scroll position thresholds.

MaterialViewPager includes a pluggable header layout system that supports swapping between default, custom, Ken Burns effect, or static image layouts. It also offers a tab bar strategy pattern that switches between standard, news-stand, or custom tab bar implementations. The library integrates with RecyclerViews and ScrollViews through an observable scroll view abstraction, and derives header background colors from the current page's dominant image palette using a lightweight color extraction algorithm.

## Tags

### User Interface & Experience

- [Material Design Components](https://awesome-repositories.com/f/user-interface-experience/component-rendering-engines/material-design-components.md) — Provides a complete Material Design ViewPager with animated header, toolbar, and logo. ([source](https://cdn.jsdelivr.net/gh/florent37/materialviewpager@master/README.md))
- [Material Design Libraries](https://awesome-repositories.com/f/user-interface-experience/material-design-libraries.md) — Provides a complete Material Design ViewPager implementation with animated header, toolbar, and logo.
- [Animated Image Tabs](https://awesome-repositories.com/f/user-interface-experience/image-display-components/animated-image-tabs.md) — Animates header background color and images as the user swipes between pages. ([source](https://cdn.jsdelivr.net/gh/florent37/materialviewpager@master/README.md))
- [Page Header Components](https://awesome-repositories.com/f/user-interface-experience/page-header-components.md) — Animates header background color and images as the user swipes between pages in a view pager.
- [Scroll-Driven Animation Tools](https://awesome-repositories.com/f/user-interface-experience/scroll-driven-animation-tools.md) — Synchronizes header image and toolbar animations with scroll position via a central coordinator.
- [Scroll-Aware Toolbar Behaviors](https://awesome-repositories.com/f/user-interface-experience/action-toolbars/toolbar-button-customizations/toolbar-components/scroll-aware-toolbar-behaviors.md) — Configures the toolbar to hide, stick, or become transparent as the user scrolls. ([source](https://cdn.jsdelivr.net/gh/florent37/materialviewpager@master/README.md))
- [Swappable Header Layouts](https://awesome-repositories.com/f/user-interface-experience/custom-header-components/swappable-header-layouts.md) — Replaces the default header with custom, Ken Burns, or static image layouts. ([source](https://cdn.jsdelivr.net/gh/florent37/materialviewpager@master/README.md))
- [Swappable Header Layouts](https://awesome-repositories.com/f/user-interface-experience/header-layout-trackers/swappable-header-layouts.md) — Replaces the default header with custom, Ken Burns, or static image layouts in a view pager.
- [Swappable Header Layouts](https://awesome-repositories.com/f/user-interface-experience/layout-containers/header-configurations/compositional-headers/swappable-header-layouts.md) — Supports swapping between default, custom, Ken Burns, or static header layouts via a single interface.
- [RecyclerView-ViewPager Scroll Links](https://awesome-repositories.com/f/user-interface-experience/navigation-components/view-pagers/recyclerview-viewpager-scroll-links.md) — Links a RecyclerView's scroll to update the ViewPager's header and toolbar. ([source](https://cdn.jsdelivr.net/gh/florent37/materialviewpager@master/README.md))
- [Scroll-Aware Toolbar Behaviors](https://awesome-repositories.com/f/user-interface-experience/scroll-interaction-handlers/scroll-state-controllers/scroll-behavior-control/scroll-aware-toolbar-behaviors.md) — Configures the toolbar to hide, stick, or become transparent based on scroll position in a view pager.
- [ScrollView-ViewPager Scroll Links](https://awesome-repositories.com/f/user-interface-experience/scroll-interaction-handlers/scroll-state-controllers/scroll-observers/scrollview-viewpager-scroll-links.md) — Links a ScrollView's scroll to update the ViewPager's header and toolbar. ([source](https://cdn.jsdelivr.net/gh/florent37/materialviewpager@master/README.md))
- [Unified](https://awesome-repositories.com/f/user-interface-experience/scroll-interaction-handlers/scroll-state-controllers/scroll-observers/unified.md) — Wraps RecyclerView and ScrollView with a unified scroll listener for header animation coordination.
- [Toolbar State Machines](https://awesome-repositories.com/f/user-interface-experience/state-driven-ui-controllers/finite-state-machine-controllers/toolbar-state-machines.md) — Manages toolbar visibility, transparency, and sticky modes via a finite state machine driven by scroll thresholds.
- [Strategy-Based Tab Bars](https://awesome-repositories.com/f/user-interface-experience/tab-bar-customizers/strategy-based-tab-bars.md) — Switches between standard, news-stand, or custom tab bars using a strategy pattern.

### Mobile Development

- [Shared Header Fragment Pages](https://awesome-repositories.com/f/mobile-development/android-component-orchestrators/fragment-lifecycle-mapping/fragment-page-bindings/shared-header-fragment-pages.md) — Provides fragment-based page composition where each page shares a common animated header.
- [RecyclerView-ViewPager Scroll Links](https://awesome-repositories.com/f/mobile-development/viewpager-integrations/recyclerview-viewpager-scroll-links.md) — Links a RecyclerView's scroll to update the ViewPager's header and toolbar.

### Graphics & Multimedia

- [Dominant Color Extraction](https://awesome-repositories.com/f/graphics-multimedia/dominant-color-extraction.md) — Extracts dominant colors from page images to dynamically set the header background.

### Part of an Awesome List

- [View Components](https://awesome-repositories.com/f/awesome-lists/devtools/view-components.md) — ViewPager implementation with Material Design headers.
- [View Pagers](https://awesome-repositories.com/f/awesome-lists/devtools/view-pagers.md) — 安卓选项卡插件
