fl_utilities 2.0.1 copy "fl_utilities: ^2.0.1" to clipboard
fl_utilities: ^2.0.1 copied to clipboard

Simple flutter utilities such as shorthands extension on [BuildContext]. `debounce` extension on [ValueChanged], and more.

2.0.1 #

  • feat: CustomListViewDelegate, default item delegate for the CustomListView children. Used on CustomListView.viewDelegate.

  • deprecated: CustomListView.crossAxisAlignment, is now deprecated in favor of CustomListView.viewDelegate.

    Instead of:

    CustomListView(
      crossAxisAlignment: CustomListViewItemAlignment.end,
    );
    

    Do:

    CustomListView(
      viewDelegate: CustomListViewDelegate(
        crossAxisAlignment: CustomListViewItemAlignment.end,
        // can also specify other [CustomListViewItemDelegate] values
        // mainAxisLength: 80.0,
        // crossAxisLength: 80.0,
      ),
    );
    

2.0.0 #

Added #

  • CustomListView], a custom ListView` with customizeable children.
  • CustomListViewItemDelegate, delegate to customize CustomListView item.
  • CustomListViewItemAlignment, an enum to control item cross axis alignment of CustomListView.
  • CustomListViewItem, a widget implementation for CustomListViewItemDelegate, not to be used directly.

Removed #

  • SizedScrollableArea

Breaking Changes #

The main reason why SizedScrollableArea exist because there's some cases that we need to modify the ListView item cross axis length, but we still wanted the scroll area fill the whole screen.

But why replace SizedScrollableArea with CustomListView?

  • The SizedScrollableArea widget is too verbose (Need same controller to control scroll).
  • The CustomListView widget is more flexible because it just a ListView with some extra features (such as manipulate cross axis length).
  • And actually SizedScrollableArea is not stable yet (too much bugs).

Migrate Guide #

  • SizedScrollableArea -> CustomListView

    Before:

    PrimaryScrollController(
      controller: ScrollController(),
      child: Stack(
        fit: StackFit.expand,
        children: [
          const SizedScrollableArea(primary: true),
    
          //
          Center( // alignment?
            child: SizedBox(
              width: 200.0, // cross axis length
              child: ListView(
                primary: true,
                children: [
                  const SizedBox(
                    height: 200.0, // main axis length
                    child: const Card(),
                  ),
                ],
              ),
            ),
          ),
        ],
      ),
    );
    

    After:

    CustomListView(
      crossAxisAlignment: CustomListViewItemAlignment.center, // default
      children: [
        CustomListViewItemDelegate(
          mainAxisLength: 200.0,
          crossAxisLength: 200.0,
          child: Card(),
        ),
      ],
    );
    

1.0.0 - Initial Release #

Added #

  • Updated docs.
  • More examples.

0.1.1 #

Fixed #

  • TextX.applyOpacity invalid style reference for null style Text.

Others #

  • Add TextStyleX.applyOpacity, extension on TextStyle to apply opacity.
  • Update docs.

0.1.0 #

Added #

Extensions #

  • on BuildContext:

    • theme, shorthand for Theme.of(context).
    • colorScheme, shorthand for Theme.of(context).colorScheme.
    • textTheme, shorthand for Theme.of(context).textTheme.
    • mediaQuery, shorthand for MediaQuery.of(context).
    • scaffold, shorthand for Scaffold.of(context).
    • scaffoldMessenger, shorthand for ScaffoldMessenger.of(context).
  • on Text:

    • applyOpacity, create a copy of Text with applied opacity.
  • on ValueChanged:

    • debounce, prevent callback from being called too often.

Widgets #

  • SizedScrollableArea, a scrollable area that can be sized. It act as extra scrollable area (which detect touch and mouse wheel pointer) if your Scrollable widget must have fixed size.

Others #

  • DialogPage, utilities for "go_router" package to show dialog. Did'nt depend on "go_router" package so "fl_utils" can be used without it.

  • useUrlPathStrategy, use path url strategy to remove hash from url path (https://github.com/flutter/flutter/issues/89763).

2
likes
150
pub points
0%
popularity

Publisher

unverified uploader

Simple flutter utilities such as shorthands extension on [BuildContext]. `debounce` extension on [ValueChanged], and more.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_web_plugins

More

Packages that depend on fl_utilities