items_selector 2.0.0 copy "items_selector: ^2.0.0" to clipboard
items_selector: ^2.0.0 copied to clipboard

A Flutter package for selecting single or multiple items from a list or grid

2.0.0 #

🚀 Added #

  • Introduced three new widgets:
    • ListSelector → Replaces SingleListItemSelector & MultiListItemSelector.
    • GridSelector → Replaces SingleGridItemSelector & MultiGridItemSelector.
    • WrapSelector → Replaces SingleWrapItemSelector & MultiWrapItemSelector.
  • ListSelector now provides two named constructors:
    • ListSelector.builder → Builds a list of selectable items.
    • ListSelector.separated → Adds separators between list items.
  • GridSelector introduces three named constructors mirroring Flutter's GridView:
    • GridSelector.builder
    • GridSelector.count
    • GridSelector.extent
  • All widgets now take a SelectedOption parameter, which accepts both SingleSelectOptions and MultiSelectOptions, offering a unified API.
  • Improved API consistency across all selectors, simplifying usability.

🔄 Changed #

  • ListSelector always uses ListView under the hood instead of switching between Row/Column and ListView.
  • GridSelector uses a sealed class configuration (GridConfiguration), requiring the correct subtype (BuilderConfiguration, CountConfiguration, or ExtentConfiguration) for each named constructor.
  • Codebase refactored for better readability and maintainability.

⚠️ Migration Guide #

This update includes breaking changes that require adjustments to your existing code.

  • Replace old widgets with new ones:
    • SingleListItemSelectorListSelector.builder or ListSelector.separated
    • MultiListItemSelectorListSelector.builder or ListSelector.separated
    • SingleGridItemSelectorGridSelector.builder, GridSelector.count, or GridSelector.extent
    • MultiGridItemSelectorGridSelector.builder, GridSelector.count, or GridSelector.extent
    • SingleWrapItemSelectorWrapSelector
    • MultiWrapItemSelectorWrapSelector
  • Use the new SelectedOption parameter instead of separate selection options.
  • Ensure GridSelector uses the correct GridConfiguration subtype for its named constructors.
  • ListSelector.separated requires an additional separatorBuilder parameter.

1.1.0 #

Added #

  • listConfiguration property introduced in SingleListItemSelector & MultiListItemSelector.
    • This allows users to switch from Row/Column to ListView, providing greater flexibility and access to ListView features such as scrolling behavior, physics, controllers, and more.
    • If listConfiguration is not provided, the default behavior remains unchanged.

Changed #

  • Refactored codebase for better readability and maintainability. No functional changes were made.
  • Updated example files to reflect recent improvements and demonstrate new capabilities.

Migration Notes #

  • No breaking changes. Upgrading to this version will not cause any compilation errors or issues.

1.0.1 #

Fixed #

  • Corrected the image URL in the README to properly display on pub.dev.

This update does not change any functionality but ensures that documentation is correctly presented to users.

1.0.0 #

Added #

  • Introduced SingleWrapItemSelector and MultiWrapItemSelector widgets, providing flexible item arrangement using the Wrap layout.

Changed #

  • Removed default padding applied to all widgets to give users more control over layout spacing.
  • Removed SingleChildScrollView from SingleListItemSelector and MultiListItemSelector to avoid unintended scrolling behavior.

Fixed #

  • General improvements to layout consistency and flexibility.

0.2.0 #

Changed #

  • Refactored SingleGridItemSelector & MultiGridItemSelector
    • Properties related to GridView (such as gridDelegate, controller, physics, etc.) have been removed from SingleGridItemSelector and MultiGridItemSelector and moved into a new class: GridConfiguration.
    • Both widgets now accept a GridConfiguration instance instead of multiple individual GridView-related properties.

Added #

  • New GridConfiguration class
    • Encapsulates all GridView configuration properties, making SingleGridItemSelector and MultiGridItemSelector cleaner and more modular.
    • Simplifies the API by grouping all grid-related options into a single parameter.

Migration Guide #

  • Instead of passing gridDelegate, controller, physics, etc., directly to SingleGridItemSelector or MultiGridItemSelector, create a GridConfiguration instance and pass it as a parameter.

    Before:

    SingleGridItemSelector<int>(
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
      padding: EdgeInsets.all(8),
      controller: ScrollController(),
      ...
    )
    
    MultiGridItemSelector<int>(
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3),
      padding: EdgeInsets.symmetric(horizontal: 16),
      controller: ScrollController(),
      ...
    )
    

    After:

    SingleGridItemSelector<int>(
      gridConfiguration: GridConfiguration(
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
      padding: EdgeInsets.all(8),
      controller: ScrollController(),
      ...
     )
    )
    
    MultiGridItemSelector<int>(
      gridConfiguration: GridConfiguration(
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 3),
      padding: EdgeInsets.symmetric(horizontal: 16),
      controller: ScrollController(),
      ...
      )
    )
    

0.1.2 #

  • Add examples

0.1.1 #

  • Updated README.md for better clarity.

0.0.1 #

  • release initial version
15
likes
0
points
23
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package for selecting single or multiple items from a list or grid

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on items_selector