An Android staggered grid view library supporting multiple columns with rows of varying sizes.
AndroidStaggeredGrid is an open-source Android library that implements a staggered grid view, enabling developers to create layouts with multiple columns and rows of varying sizes. It solves the problem of displaying heterogeneous content in a grid format, such as images or cards, with stable orientation handling and support for headers and footers. The library was developed by Etsy to address specific needs not met by other Android grid solutions at the time.
Android developers building apps that require staggered grid layouts, such as those displaying image galleries, product listings, or content feeds with varying item sizes. It is particularly useful for projects needing custom grid behavior beyond standard GridView or ListView.
Developers choose AndroidStaggeredGrid for its stable implementation, configurable columns per orientation, and built-in support for headers and footers, which were lacking in other libraries. Its extension of AbsListView allows for familiar integration and scroll listener support, making it a flexible choice for complex grid layouts.
An Android staggered grid view which supports multiple columns with rows of varying sizes.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Maintains grid position across device orientation changes, a key feature developed for the Etsy app to ensure seamless user experience during rotations.
Includes built-in support for headers and footers, addressing a gap in other staggered grid libraries at the time and simplifying layout additions.
Extends Android's AbsListView, allowing developers to use standard adapters and scroll listeners, similar to GridView or ListView, for easy integration.
Supports different column counts for portrait and landscape modes via XML attributes, providing flexibility for responsive grid designs.
Etsy deprecated the library in 2015 with no updates or community pull requests approved, making it risky for long-term use and lacking bug fixes or compatibility with newer Android versions.
The README explicitly lists unsupported features like item selector drawables, long-press events, and scroll bars, limiting functionality compared to modern alternatives like RecyclerView.
Relies on old tools like Android Gradle plugin v0.9.2 and Support Library v19.1, which can cause conflicts in contemporary Android Studio projects and require manual adjustments.
Requires views to maintain their own width-to-height ratios, as illustrated by the need for DynamicHeightImageView, adding complexity and potential for layout issues.