awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
etsy avatar

etsy/AndroidStaggeredGridArchived

0
View on GitHub↗
4,771 stars·1,115 forks·Java·16 viewsgithub.com/etsy/AndroidStaggeredGrid↗

AndroidStaggeredGrid

The AndroidStaggeredGrid library provides a multi-column, masonry-style grid component for Android applications. It arranges items in a staggered layout where rows contain items of varying heights, similar to a Pinterest-style grid. The library supports dynamic column count configuration and includes built-in item interaction handling through tap event callbacks.

Key capabilities include adjustable column counts that can be changed at runtime, separate column configurations for portrait and landscape orientations, automatic scroll position restoration across configuration changes, and an empty state placeholder view when the grid contains no items. The component also supports fixed header and footer views with content area padding.

The implementation follows Android’s adapter-based view recycling pattern to manage memory efficiently with long lists, tracking per-column heights to determine placement of new items.

Features

  • Staggered - Displays items in a multi-column grid where each row contains items of different heights, similar to a masonry layout.
  • Staggered Grid Column Height Trackers - Maintains per-column cumulative height to determine the shortest column for inserting the next item.
  • Item Action Triggers - Triggers a callback when a user taps an item in the staggered grid.
  • Staggered Grid Column Count Updates - Rebuilds the entire child layout when the number of columns changes at runtime, respecting new column widths.
  • Staggered Grid - Overrides AbsListView's layout logic to measure and position children in multiple columns with varying row heights.
  • Masonry Layouts - Arranges items in a Pinterest-style layout with varying column sizes and heights.
  • Orientation-Adaptive Column Counts - Supports dynamic column count configuration and separate layouts for portrait and landscape orientations.
  • Orientation-Specific Column Counts - Renders the staggered grid with separate column counts for portrait and landscape orientations.
  • Staggered Grid Column Counts - Adjusts the number of grid columns at runtime while supporting items of different heights.
  • Orientation Change Restorations - Automatically restores scroll position and layout when the device orientation changes.
  • View Recycling - Reuses off-screen child views via Android's BaseAdapter recycling pattern to manage memory in long lists.
  • Grid Header and Footer Views - Allows adding fixed header and footer views to the grid with padding that applies only to the grid content area.
  • Grid Item Tap Handlers - Registers tap events on grid items and invokes a callback for custom actions.
  • Orientation-Aware Column Counts - Switches between separate portrait and landscape column counts by detecting configuration changes in the layout pass.
  • Empty State Placeholders - Shows a designated empty view by swapping the grid content with it when the adapter data size is zero.
  • Orientation-Adaptive Grid Layouts - Renders a staggered grid with separate column counts for portrait and landscape orientations automatically.
  • Configuration Change Scroll Restorers - Persists and restores the scroll position of a staggered grid across configuration changes like device rotation.
  • Configuration Change Scroll Restorers - Saves and restores the scroll offset and column data across configuration changes using the View's onSaveInstanceState and onRestoreInstanceState.
  • Item Click Delegators - Fires click callbacks by intercepting touch events on child views and dispatching them through OnItemClickListener.
  • Grid Layouts - Grid view supporting multiple columns with varying row sizes.
  • Lists and Grids - Staggered grid layout implementation.
  • User Interface Components - Grid view which supports multiple columns with rows of varying sizes.

Star history

Star history chart for etsy/androidstaggeredgridStar history chart for etsy/androidstaggeredgrid

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with AndroidStaggeredGrid

These projects share indexed features with AndroidStaggeredGrid. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • chiahsien/chtcollectionviewwaterfalllayoutchiahsien avatar

    chiahsien/CHTCollectionViewWaterfallLayout

    4,613View on GitHub↗

    CHTCollectionViewWaterfallLayout is a custom layout for iOS collection views designed to organize items of varying heights into a masonry-style grid. It enables the display of dynamic content in multiple columns to optimize screen space and visual flow. The layout allows for specific configuration of column counts and item population directions, including left-to-right, right-to-left, and shortest-column-first rendering patterns. This approach minimizes vertical gaps by placing items into the column with the lowest current height. The system also manages section-level accessories, integratin

    Objective-C
    View on GitHub↗4,613
  • flipkart/recyclerlistviewFlipkart avatar

    Flipkart/recyclerlistview

    5,440View on GitHub↗

    Recyclerlistview is a cross-platform virtualized list component for React Native and web. It functions as a cell-recycling UI library that reuses a small set of off-screen components by updating their data rather than creating new views for every item. The framework includes a dynamic grid layout engine that supports staggered grids and variable item heights, allowing for instant switching between list and grid view modes. The library provides capabilities for virtual scrolling management, including viewability tracking, sticky headers, and scroll position restoration. It also supports infin

    TypeScript
    View on GitHub↗5,440
  • nicklockwood/icarouselnicklockwood avatar

    nicklockwood/iCarousel

    12,129View on GitHub↗

    iCarousel is a data-driven UI library for macOS and iOS used to build interactive three-dimensional scrolling experiences. It functions as a customizable view controller that renders paged content using cylindrical or cover-flow 3D effects. The component is distinguished by its programmable perspective and visual transformation hooks, which allow for the definition of custom 3D styles and bespoke animation effects. Users can adjust viewpoint distance, alpha fading, and foreshortening to control how the vanishing point and depth appear during navigation. The library manages high-performance v

    Objective-C
    View on GitHub↗12,129
  • facebook/lithofacebook avatar

    facebook/litho

    7,771View on GitHub↗

    Litho is an Android declarative UI framework and component library used to build user interfaces through a declarative API and immutable state. It functions as an asynchronous layout engine that maps components to a structured view hierarchy to automate view updates. The framework optimizes rendering performance by computing element positions on background threads to prevent blocking the main UI thread. It further improves efficiency by flattening nested view hierarchies and caching layout results. The system includes capabilities for state reconciliation, component recycling, and the render

    Kotlin
    View on GitHub↗7,771
Compare all 30 related projects→

Frequently asked questions

What does etsy/androidstaggeredgrid do?

The AndroidStaggeredGrid library provides a multi-column, masonry-style grid component for Android applications. It arranges items in a staggered layout where rows contain items of varying heights, similar to a Pinterest-style grid. The library supports dynamic column count configuration and includes built-in item interaction handling through tap event callbacks.

What are the main features of etsy/androidstaggeredgrid?

The main features of etsy/androidstaggeredgrid are: Staggered, Staggered Grid Column Height Trackers, Item Action Triggers, Staggered Grid Column Count Updates, Staggered Grid, Masonry Layouts, Orientation-Adaptive Column Counts, Orientation-Specific Column Counts.

Which projects share features with etsy/androidstaggeredgrid?

Projects with overlapping indexed features include: chiahsien/chtcollectionviewwaterfalllayout — CHTCollectionViewWaterfallLayout is a custom layout for iOS collection views designed to organize items of varying… flipkart/recyclerlistview — Recyclerlistview is a cross-platform virtualized list component for React Native and web. It functions as a… nicklockwood/icarousel — iCarousel is a data-driven UI library for macOS and iOS used to build interactive three-dimensional scrolling… facebook/litho — Litho is an Android declarative UI framework and component library used to build user interfaces through a declarative… airbnb/epoxy — Epoxy is an Android library for building complex RecyclerView screens using a model-driven approach. It generates… yanzhenjie/swiperecyclerview — SwipeRecyclerView is an Android library that extends the standard RecyclerView with swipeable action menus,…