# alibaba/vlayout

**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/alibaba-vlayout).**

10,740 stars · 1,784 forks · Java · MIT · archived

## Links

- GitHub: https://github.com/alibaba/vlayout
- Homepage: http://tangram.pingguohe.net/
- awesome-repositories: https://awesome-repositories.com/repository/alibaba-vlayout.md

## Topics

`android` `layout` `layout-manager` `layoutmanager` `recyclerview-multi-type` `tangram`

## Description

vlayout is an Android RecyclerView extension framework that uses pluggable layout helpers to mix grid, list, sticky, staggered, and fixed layouts within a single scrollable view. It provides a modular layout delegation system where each section of the RecyclerView is assigned a dedicated layout helper that manages its own measurement, placement, and decoration, enabling complex heterogeneous content displays.

The framework extends RecyclerView's LayoutManager to delegate layout logic to these modular helper components, supporting features like sticky headers that remain visible at the top during scrolling, staggered grid patterns with variable item heights, and fixed view positioning that pins a child at a specific screen coordinate. It also includes a virtual adapter bridge that routes adapter data through a position mapping layer, translating global positions into section-local indices for efficient view binding.

vlayout allows merging multiple data adapters into one scrollable RecyclerView, each with its own layout behavior and data set, and supports nested layout composition for complex arrangements like grids inside lists. The library provides a registry of layout helpers and enables developers to define custom section layouts with specific positioning logic.

## Tags

### Mobile Development

- [Modular Layout Managers](https://awesome-repositories.com/f/mobile-development/android-layout-components/modular-layout-managers.md) — Provides modular layout helpers to arrange child views in grid, list, sticky, and fixed patterns within RecyclerView.
- [Multiple Adapter Mergers](https://awesome-repositories.com/f/mobile-development/recyclerview-adapter-wrappers/multiple-adapter-mergers.md) — Merges several data adapters into one scrollable RecyclerView, each with its own layout behavior and data set.

### Part of an Awesome List

- [Adapter Merging](https://awesome-repositories.com/f/awesome-lists/ai/model-adaptation-and-merging/adapter-merging.md) — Merges several data adapters into one scrollable view through a delegate adapter, each contributing its own layout helper. ([source](https://cdn.jsdelivr.net/gh/alibaba/vlayout@master/README.md))
- [RecyclerView Adapter Mergers](https://awesome-repositories.com/f/awesome-lists/ai/model-adaptation-and-merging/adapter-merging/recyclerview-adapter-mergers.md) — Merges multiple data adapters into one scrollable RecyclerView, each with its own layout behavior and data set. ([source](https://cdn.jsdelivr.net/gh/alibaba/vlayout@master/README.md))
- [Layout Helpers](https://awesome-repositories.com/f/awesome-lists/devtools/layout-helpers.md) — Provides a registry of pluggable layout helpers that define measurement and placement for each RecyclerView section.
- [Heterogeneous RecyclerView Layouts](https://awesome-repositories.com/f/awesome-lists/devtools/list-and-grid-layouts/heterogeneous-recyclerview-layouts.md) — Combines grid, list, sticky, and custom layout sections within a single RecyclerView for heterogeneous content displays. ([source](http://tangram.pingguohe.net/))
- [Heterogeneous RecyclerView Layouts](https://awesome-repositories.com/f/awesome-lists/devtools/list-views/recyclerview-lists/heterogeneous-recyclerview-layouts.md) — Arranges child views with different layout styles within one RecyclerView by delegating each section to a dedicated layout helper. ([source](https://cdn.jsdelivr.net/gh/alibaba/vlayout@master/README.md))
- [Layout Managers](https://awesome-repositories.com/f/awesome-lists/devtools/layout-managers.md) — Layout manager for complex components.
- [List and Grid Components](https://awesome-repositories.com/f/awesome-lists/devtools/list-and-grid-components.md) — Complex layout and component reuse framework.
- [List Components](https://awesome-repositories.com/f/awesome-lists/devtools/list-components.md) — Layout manager for complex, reusable components.
- [UI Components](https://awesome-repositories.com/f/awesome-lists/devtools/ui-components.md) — LayoutManager extension for RecyclerView.

### Content Management & Publishing

- [Section-Based Layout Management](https://awesome-repositories.com/f/content-management-publishing/section-based-layout-management.md) — Divides the scrollable view into sections, each assigned a dedicated layout helper for its own child arrangement.

### Software Engineering & Architecture

- [Layout Manager Extensions](https://awesome-repositories.com/f/software-engineering-architecture/modular-extensibility-frameworks/layout-manager-extensions.md) — Extends RecyclerView's LayoutManager to delegate layout logic to modular helper components for each section.

### User Interface & Experience

- [Custom Layouts](https://awesome-repositories.com/f/user-interface-experience/layout-components/custom-layouts.md) — Provides layout helpers that implement specific positioning logic for a range of items within a RecyclerView section. ([source](https://cdn.jsdelivr.net/gh/alibaba/vlayout@master/README.md))
- [RecyclerView Section Layouts](https://awesome-repositories.com/f/user-interface-experience/layout-components/custom-layouts/recyclerview-section-layouts.md) — Defines reusable layout sections that position a range of items and plug them into the virtual layout manager. ([source](https://cdn.jsdelivr.net/gh/alibaba/vlayout@master/README.md))
- [Sticky Header Pinning](https://awesome-repositories.com/f/user-interface-experience/sticky-header-pinning.md) — Ships a sticky header layout helper that keeps a header visible at the top while content scrolls beneath it.
- [Heterogeneous Scrollable](https://awesome-repositories.com/f/user-interface-experience/view-layouts/heterogeneous-scrollable.md) — Arranges child views with different layout styles within one scrollable view using modular layout helpers. ([source](https://cdn.jsdelivr.net/gh/alibaba/vlayout@master/README.md))
- [Scrollable View Layout Systems](https://awesome-repositories.com/f/user-interface-experience/view-layouts/scrollable-view-layout-systems.md) — Provides a modular layout delegation system for mixing grid, list, sticky, staggered, and fixed layouts within a single RecyclerView.
- [Virtual Adapter Bridges](https://awesome-repositories.com/f/user-interface-experience/adaptive-layout-rendering/virtual-adapter-bridges.md) — Routes adapter data through a virtual adapter that maps positions to layout helpers for section-specific rendering.
- [Fixed Position Components](https://awesome-repositories.com/f/user-interface-experience/fixed-position-components.md) — Positions child views at fixed screen locations during scrolling, with options for dragging or delayed appearance. ([source](https://cdn.jsdelivr.net/gh/alibaba/vlayout@master/README.md))
- [Staggered Grid](https://awesome-repositories.com/f/user-interface-experience/layout-components/custom-layouts/staggered-grid.md) — Arranges items in a staggered grid pattern within a RecyclerView section, supporting variable item heights.
- [Position Mapping Layers](https://awesome-repositories.com/f/user-interface-experience/layout-positioning/subview-positioning/position-mapping-layers.md) — Translates global adapter positions into section-local indices for efficient view binding.
- [Scroll Pinning Utilities](https://awesome-repositories.com/f/user-interface-experience/scroll-animations/scroll-pinning-utilities.md) — Pins child views at fixed screen coordinates during scrolling by intercepting scroll offsets.

### Web Development

- [Heterogeneous](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/rendering-and-layout-architectures/component-based-page-layouts/layout-engines/heterogeneous.md) — Combines multiple adapters and layout styles into one scrollable RecyclerView for diverse content sections.
- [Hierarchical Layout Compositions](https://awesome-repositories.com/f/web-development/file-system-routing/nested-layouts/hierarchical-layout-compositions.md) — Enables hierarchical composition of layout helpers for complex arrangements like grids inside lists.
