Search packages, repositories and app categories

overflow_view cover
Package detailsv0.7.0

overflow_view

A widget displaying children in a line with an overflow indicator at the end if there is not enough space.

AndroidiOSWebmacOSWindowsLinux
30-day downloads
30.3K
Likes
227
Pub points
150

Install package

flutter pub add overflow_view

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

OverflowView is a Flutter widget that arranges its children in a horizontal line and displays an overflow indicator (like a '+' or count) when there isn't enough space to show all children. It's ideal for compact layouts such as user avatars in chat interfaces or profile lists. The widget automatically handles overflow by clipping and adding a visual indicator, improving usability on small screens. It supports multiple platforms including mobile, web, and desktop.

Use cases

  • Chat head avatars
  • User list previews
  • Compact profile displays
  • Responsive UI components
  • Dynamic avatar groups

Key features

  • Automatic overflow detection
  • Customizable overflow indicator
  • Horizontal layout with spacing
  • Cross-platform support
  • Flexible child sizing

Suitable for

  • UIs with dynamic avatar lists
  • Mobile-first responsive designs
  • Chat and messaging apps
  • Profile card layouts
  • Space-constrained interfaces

Considerations

  • May require custom styling for the overflow indicator
  • Limited vertical overflow handling
  • Performance with large child counts
  • Not suitable for complex layouts
  • Depends on parent container constraints

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

overflow_view

A widget displaying children in a line with an overflow indicator at the end if there is not enough space.

Pub

Features

  • Renders children horizontally or vertically.
  • Has an overflow indicator builder so that you can display a widget showing the number of elements not rendered.
  • Can either constrain the children to the size of the first child or let them have the size they want.
  • Children can overlap each other by setting a negative spacing.

Overview

Getting started

In the pubspec.yaml of your flutter project, add the following dependency:

dependencies:
  ...
  overflow_view:

In your library add the following import:

import 'package:overflow_view/overflow_view.dart';

Usage

OverflowView(
  // Either layout the children horizontally (the default)
  // or vertically.
  direction: Axis.horizontal,
  // The amount of space between children.
  spacing: 4,
  // The widgets to display until there is not enough space.
  children: <Widget>[
    for (int i = 0; i < _counter; i++)
      AvatarWidget(
        text: avatars[i].initials,
        color: avatars[i].color,
      )
  ],
  // The overview indicator showed if there is not enough space for
  // all chidren.
  builder: (context, remaining) {
    // You can return any widget here.
    // You can either show a +n widget or a more complex widget
    // which can show a thumbnail of not rendered widgets.
    return AvatarWidget(
      text: '+$remaining',
      color: Colors.red,
    );
  },
)
Constructors

There are two constuctors depending on what you want to do.

The OverflowView constructor will constrain all children to have the same size as the first one. This can be used for an avatar list for example.

The OverflowView.flexible constructor will let all children to determine their own size. This is less performant than the default one, but it's more flexible. This can be used for a menu bar for example.

Sponsoring

I'm working on my packages on my free-time, but I don't have as much time as I would. If this package or any other package I created is helping you, please consider to sponsor me. By doing so, I will prioritize your issues or your pull-requests before the others.

Changelog

Please see the Changelog page to know what's recently changed.

Contributions

Feel free to contribute to this project.

If you find a bug or want a feature, but don't know how to fix/implement it, please fill an issue.
If you fixed a bug or implemented a feature, please send a pull request.

Categories

Dependencies

Dependency list 1 items

Source repository

Projects using this package