DirectSelect is a selection widget with an ethereal, full-screen modal popup displaying the available choices when the widget is interact with. https://dribbble.com/shots/3876250-DirectSelect-Dropdown-ux

Overview

direct-select-flutter

DirectSelect is a selection widget with an ethereal, full-screen modal popup displaying the available choices when the widget is interact with. Inspired by dribble shot.

Made in lanars.com.

pub package Awesome Flutter

iOS

Android

Usage

Create DirectSelectList and fill it with items using itemBuilder

    final dsl = DirectSelectList<String>(
        values: _cities,
        defaultItemIndex: 3,
        itemBuilder: (String value) => getDropDownMenuItem(value),
        focusedItemDecoration: _getDslDecoration(),
        onItemSelectedListener: (item, index, context) {
          Scaffold.of(context).showSnackBar(SnackBar(content: Text(item)));
        });

Create items like this

  DirectSelectItem<String> getDropDownMenuItem(String value) {
    return DirectSelectItem<String>(
        itemHeight: 56,
        value: value,
        itemBuilder: (context, value) {
          return Text(value);
        });
  }

Create decorations for focused items

  _getDslDecoration() {
   return BoxDecoration(
     border: BorderDirectional(
       bottom: BorderSide(width: 1, color: Colors.black12),
       top: BorderSide(width: 1, color: Colors.black12),
     ),
   );
 }

Create DirectSelectContainer and fill it with your data

Scaffold(
      appBar: appBar,
      body: DirectSelectContainer(
        child: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            mainAxisSize: MainAxisSize.min,
            verticalDirection: VerticalDirection.down,
            children: <Widget>[
              SizedBox(height: 150.0),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: Column(
                  children: <Widget>[
                    Container(
                      alignment: AlignmentDirectional.centerStart,
                      margin: EdgeInsets.only(left: 4),
                      child: Text("City"),
                    ),
                    Padding(
                      padding: const EdgeInsets.fromLTRB(0, 8, 0, 0),
                      child: Card(
                        child: Row(
                          mainAxisSize: MainAxisSize.max,
                          children: <Widget>[
                            Expanded(
                                child: Padding(
                                    child: DirectSelectList<String>(
                                                     values: _cities,
                                                     defaultItemIndex: 3,
                                                     itemBuilder: (String value) => getDropDownMenuItem(value),
                                                     focusedItemDecoration: _getDslDecoration(),
                                                     onItemSelectedListener: (item, index, context) {
                                                       Scaffold.of(context).showSnackBar(SnackBar(content: Text(item)));
                                                     }),
                                    padding: EdgeInsets.only(left: 12))),
                            Padding(
                              padding: EdgeInsets.only(right: 8),
                              child: Icon(
                                Icons.unfold_more,
                                color: Colors.black38,
                              ),
                            )
                          ],
                        ),
                         ),
                    ),
                  ],
                ),
              ),
            ],
          ),
        ),
      ),
    );
Comments
  • Null check operator used on a null value

    Null check operator used on a null value

    Every time I try to click the UI to select an item in the list. I get the following error.

    Null check operator used on a null value The relevant error-causing widget was DirectSelectContainer

    Any help would be welcome. Thanks in advance

    opened by Work90210 10
  • Dropdown Selected Value Different than What's Shown

    Dropdown Selected Value Different than What's Shown

    Getting a weird issue where the value in the dropdown list is not what's shown when clicked. Allow me to try and explain this weird issue.

    We have 2 fields - State and City. State has 2 options, and City has 2 options for each State (or 4 options total). State = ['MA', 'NH'] 'MA' ['Boston', 'Cambridge']

    'NH' ['Concord', 'Manchester']

    If I click on MA in the first box, then I can click on either Boston or Cambridge on the second, this works fine. The issue is if I then change the first DirectSelectList to NH. The values show correctly in the second DirectSelectList, however once I click on them - for instance Concord - the value will in fact still show Boston.

    I have this in my Drawer. So if I close my Drawer and re-open it builds correctly and shows the correct value - until I do the same thing again.

    It appears that it still holds its value and I believe this is a problem with the library itself. Has anyone seen this issue before?

    bug 
    opened by EricPHassey 8
  • Package depends on an old version of cupertino_icons

    Package depends on an old version of cupertino_icons

    This package cannot be installed into a project that uses a new version of cupertino_icons. A glance into the project reveals that cupertino_icons is not even needed here.

    Simply remove the dependency?

    opened by robin7331 2
  • How can we show the list of items on single press not long pressed?

    How can we show the list of items on single press not long pressed?

    This widget is working perfectly on long press. But what if we want the same functionality on single pressed button. After pressing it single time list shows and we can scroll and choose respective items and show it back again. Can we do that?

    opened by umair-ilyas 2
  • Usability Issues

    Usability Issues

    Enhancement This UX pattern is great I would love to help shift to it 2 less steps for the user once they know how to use it

    BUT first, we need to teach them how to use it this means that

    1. when the user taps the selection box it should also open up the drop-down "page"
    2. additionally when that kind of page comes up it should also explain to the user the way it SHOULD be used (hold, drag, let go)
    3. and that kind of page, since it was opened on tap it should allow one to select on tap
    4. and of course since you are selecting on tap it should allow you to scroll but WITHOUT highlighting any item since that would be confusing

    Bug Fix Additionally, currently, if you tap long enough to trigger the animation to open up the page, but not long enough to "select" an item you are stuck with the page open with the options, but no way to close it or select an item... this should not happen

    I will eventually fix this within a month or two for my own app as a nice little enhancement but it would be great if you would since you already know what you have done and would have an easier time adding anything else

    opened by b-cancel 2
  • How can we use it with Sliver widget along with Tab Views.

    How can we use it with Sliver widget along with Tab Views.

    Hi,

    I am using Sliver widgets along with Tabs. I wanted to have the direct-select-flutter but I am unable to achieve it.

    Here is UI. Screenshot from 2019-09-24 20-17-18

    Code Snippet

    
    class IntroductionSection extends StatelessWidget {
      final Product product;
      final TabController tabController;
      const IntroductionSection({Key key, this.product, this.tabController})
          : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return SliverStickyHeader(
          overlapsContent: true,
          header: DirectSelectContainer(
            child: Container(
              color: Colors.white,
              padding: EdgeInsets.all(8.0),
              child: Column(children: <Widget>[
                ListTile(
                  title: Row(
                    children: <Widget>[
                      Expanded(
                        child: Text(
                          "(MRP) ₹ ${this.product.price.toString()}",
                          style: TextStyle(
                              color: Colors.grey,
                              fontSize: 20,
                              decoration: TextDecoration.lineThrough),
                        ),
                      ),
                      Expanded(
                        child: Text(
                          "(Price) ₹ ${this.product.discountedPrice().toString()}",
                          style: TextStyle(
                            color: Colors.teal[400],
                            fontSize: 20,
                          ),
                        ),
                      )
                    ],
                  ),
                ),
                Row(children: <Widget>[
                  Expanded(
                    child: SingleChildScrollView(
                      child: Padding(
                        padding: const EdgeInsets.all(8.0),
                        child: Column(
                          mainAxisSize: MainAxisSize.min,
                          verticalDirection: VerticalDirection.down,
                          children: <Widget>[
                            DirectSelectDropDown(
                              data: ['Small', 'Medium', 'Large'],
                              label: 'Size',
                            ),
                          ],
                        ),
                      ),
                    ),
                  ),
    ...
    ....
    .....
    

    While interacting with the widget, I am getting the below mentioned exceptions.

    Restarted application in 2,804ms.
    
    ════════ Exception caught by rendering library ═════════════════════════════════
    The following assertion was thrown during performLayout():
    RenderFlex children have non-zero flex but incoming height constraints are unbounded.
    
    When a column is in a parent that does not provide a finite height constraint, for example if it is in a vertical scrollable, it will try to shrink-wrap its children along the vertical axis. Setting a flex on a child (e.g. using Expanded) indicates that the child is to expand to fill the remaining space in the vertical direction.
    These two directives are mutually exclusive. If a parent is to shrink-wrap its child, the child cannot simultaneously expand to fit its parent.
    
    Consider setting mainAxisSize to MainAxisSize.min and using FlexFit.loose fits for the flexible children (using Flexible rather than Expanded). This will allow the flexible children to size themselves to less than the infinite remaining space they would otherwise be forced to take, and then will cause the RenderFlex to shrink-wrap the children rather than expanding to fit the maximum constraints provided by the parent.
    
    If this message did not help you determine the problem, consider using debugDumpRenderTree():
      https://flutter.dev/debugging/#rendering-layer
      http://api.flutter.dev/flutter/rendering/debugDumpRenderTree.html
    The affected RenderFlex is: RenderFlex#5b31c relayoutBoundary=up4 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: <none> (can use size)
        constraints: BoxConstraints(0.0<=w<=411.4, 0.0<=h<=Infinity)
        size: MISSING
        direction: vertical
        mainAxisAlignment: start
        mainAxisSize: max
        crossAxisAlignment: center
        verticalDirection: down
        child 1: RenderStack#61660 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: offset=Offset(0.0, 0.0); flex=1; fit=FlexFit.tight
            constraints: MISSING
            size: MISSING
            alignment: AlignmentDirectional.topStart
            textDirection: ltr
            fit: loose
            overflow: clip
            child 1: RenderDecoratedBox#ca8c3 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: not positioned; offset=Offset(0.0, 0.0)
                constraints: MISSING
                size: MISSING
                decoration: BoxDecoration
                    color: Color(0xfffafafa)
                configuration: ImageConfiguration(bundle: PlatformAssetBundle#3ac0b(), devicePixelRatio: 2.6, locale: en_US, textDirection: TextDirection.ltr, platform: android)
                child: RenderRepaintBoundary#7d2ea NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    usefulness ratio: no metrics collected yet (never painted)
                    child: RenderCustomPaint#1a9f6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                        parentData: <none>
                        constraints: MISSING
                        size: MISSING
            child 2: RenderConstrainedBox#a9226 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: top=424.0; right=0.0; left=0.0; height=56.0; offset=Offset(0.0, 0.0)
                constraints: MISSING
                size: MISSING
                additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=56.0)
                child: RenderDecoratedBox#403fc NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    decoration: BoxDecoration
                        border: BorderDirectional(top: BorderSide(Color(0x1f000000), 1.0, BorderStyle.solid), bottom: BorderSide(Color(0x1f000000), 1.0, BorderStyle.solid))
                    configuration: ImageConfiguration(bundle: PlatformAssetBundle#3ac0b(), devicePixelRatio: 2.6, locale: en_US, textDirection: TextDirection.ltr, platform: android)
                    child: RenderPadding#a81a6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                        parentData: <none>
                        constraints: MISSING
                        size: MISSING
                        padding: EdgeInsets(0.0, 1.0, 0.0, 1.0)
                        textDirection: ltr
    The creator information is set to: Column ← FadeTransition ← Visibility ← Stack ← DirectSelectContainer ← SliverStickyHeader ← IntroductionSection ← Viewport ← IgnorePointer-[GlobalKey#3588e] ← Semantics ← _PointerListener ← Listener ← ⋯
    
    See also: https://flutter.dev/layout/
    
    If none of the above helps enough to fix this problem, please don't hesitate to file a bug:
      https://github.com/flutter/flutter/issues/new?template=BUG.md
    User-created ancestor of the error-causing widget was
        DirectSelectContainer
    When the exception was thrown, this was the stack
    #0      RenderFlex.performLayout.<anonymous closure>
    #1      RenderFlex.performLayout
    #2      RenderObject.layout
    #3      RenderProxyBoxMixin.performLayout
    #4      RenderObject.layout
    ...
    The following RenderObject was being processed when the exception was fired: RenderFlex#5b31c relayoutBoundary=up4 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    RenderObject: RenderFlex#5b31c relayoutBoundary=up4 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
        parentData: <none> (can use size)
        constraints: BoxConstraints(0.0<=w<=411.4, 0.0<=h<=Infinity)
        size: MISSING
        direction: vertical
        mainAxisAlignment: start
        mainAxisSize: max
        crossAxisAlignment: center
        verticalDirection: down
        child 1: RenderStack#61660 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
            parentData: offset=Offset(0.0, 0.0); flex=1; fit=FlexFit.tight
            constraints: MISSING
            size: MISSING
            alignment: AlignmentDirectional.topStart
            textDirection: ltr
            fit: loose
            overflow: clip
            child 1: RenderDecoratedBox#ca8c3 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: not positioned; offset=Offset(0.0, 0.0)
                constraints: MISSING
                size: MISSING
                decoration: BoxDecoration
                    color: Color(0xfffafafa)
                configuration: ImageConfiguration(bundle: PlatformAssetBundle#3ac0b(), devicePixelRatio: 2.6, locale: en_US, textDirection: TextDirection.ltr, platform: android)
                child: RenderRepaintBoundary#7d2ea NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    needs compositing
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    usefulness ratio: no metrics collected yet (never painted)
                    child: RenderCustomPaint#1a9f6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                        parentData: <none>
                        constraints: MISSING
                        size: MISSING
            child 2: RenderConstrainedBox#a9226 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                parentData: top=424.0; right=0.0; left=0.0; height=56.0; offset=Offset(0.0, 0.0)
                constraints: MISSING
                size: MISSING
                additionalConstraints: BoxConstraints(0.0<=w<=Infinity, h=56.0)
                child: RenderDecoratedBox#403fc NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                    parentData: <none>
                    constraints: MISSING
                    size: MISSING
                    decoration: BoxDecoration
                        border: BorderDirectional(top: BorderSide(Color(0x1f000000), 1.0, BorderStyle.solid), bottom: BorderSide(Color(0x1f000000), 1.0, BorderStyle.solid))
                    configuration: ImageConfiguration(bundle: PlatformAssetBundle#3ac0b(), devicePixelRatio: 2.6, locale: en_US, textDirection: TextDirection.ltr, platform: android)
                    child: RenderPadding#a81a6 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
                        parentData: <none>
                        constraints: MISSING
                        size: MISSING
                        padding: EdgeInsets(0.0, 1.0, 0.0, 1.0)
                        textDirection: ltr
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by rendering library ═════════════════════════════════
    RenderBox was not laid out: RenderFlex#5b31c relayoutBoundary=up4 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    'package:flutter/src/rendering/box.dart':
    Failed assertion: line 1681 pos 12: 'hasSize'
    User-created ancestor of the error-causing widget was
        DirectSelectContainer
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by rendering library ═════════════════════════════════
    RenderBox was not laid out: RenderAnimatedOpacity#77276 relayoutBoundary=up3 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
    'package:flutter/src/rendering/box.dart':
    Failed assertion: line 1681 pos 12: 'hasSize'
    User-created ancestor of the error-causing widget was
        DirectSelectContainer
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by rendering library ═════════════════════════════════
    The method '>' was called on null.
    Receiver: null
    Tried calling: >(1e-10)
    User-created ancestor of the error-causing widget was
        DirectSelectContainer
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by rendering library ═════════════════════════════════
    The method '>' was called on null.
    Receiver: null
    Tried calling: >(1e-10)
    User-created ancestor of the error-causing widget was
        DirectSelectContainer
    ════════════════════════════════════════════════════════════════════════════════
    I/flutter (17086): NoSuchMethodError: The method 'toDouble' was called on null.
    I/flutter (17086): Receiver: null
    I/flutter (17086): Tried calling: toDouble()
    
    ════════ Exception caught by animation library ═════════════════════════════════
    The method '>' was called on null.
    Receiver: null
    Tried calling: >(347.77678571428567)
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by animation library ═════════════════════════════════
    The method '>' was called on null.
    Receiver: null
    Tried calling: >(347.77678571428567)
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by animation library ═════════════════════════════════
    The method '>' was called on null.
    Receiver: null
    Tried calling: >(347.77678571428567)
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by animation library ═════════════════════════════════
    The method '>' was called on null.
    Receiver: null
    Tried calling: >(347.77678571428567)
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by animation library ═════════════════════════════════
    The method '>' was called on null.
    Receiver: null
    Tried calling: >(347.77678571428567)
    ════════════════════════════════════════════════════════════════════════════════
    
    ════════ Exception caught by animation library ═════════════════════════════════
    The method '>' was called on null.
    Receiver: null
    Tried calling: >(347.77678571428567)
    ════════════════════════════════════════════════════════════════════════════════
    I/chatty  (17086): uid=10130(com.example.conjuror_app) Thread-2 identical 14 lines
    I/flutter (17086): NoSuchMethodError: The method 'toDouble' was called on null.
    I/flutter (17086): Receiver: null
    I/flutter (17086): Tried calling: toDouble()
    E/flutter (17086): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: NoSuchMethodError: The method '>' was called on null.
    E/flutter (17086): Receiver: null
    E/flutter (17086): Tried calling: >(347.77678571428567)
    E/flutter (17086): #0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:51:5)
    E/flutter (17086): #1      double.<  (dart:core-patch/double.dart:88:18)
    E/flutter (17086): #2      ScrollMetrics.outOfRange
    E/flutter (17086): #3      ClampingScrollPhysics.createBallisticSimulation
    E/flutter (17086): #4      ScrollPositionWithSingleContext.goBallistic
    E/flutter (17086): #5      DrivenScrollActivity._end
    E/flutter (17086): #6      _rootRun  (dart:async/zone.dart:1120:38)
    E/flutter (17086): #7      _CustomZone.run  (dart:async/zone.dart:1021:19)
    E/flutter (17086): #8      _FutureListener.handleWhenComplete  (dart:async/future_impl.dart:161:18)
    E/flutter (17086): #9      Future._propagateToListeners.handleWhenCompleteCallback  (dart:async/future_impl.dart:648:39)
    E/flutter (17086): #10     Future._propagateToListeners  (dart:async/future_impl.dart:704:37)
    E/flutter (17086): #11     Future._completeWithValue  (dart:async/future_impl.dart:522:5)
    E/flutter (17086): #12     Future._asyncComplete.<anonymous closure>  (dart:async/future_impl.dart:552:7)
    E/flutter (17086): #13     _rootRun  (dart:async/zone.dart:1124:13)
    E/flutter (17086): #14     _CustomZone.run  (dart:async/zone.dart:1021:19)
    E/flutter (17086): #15     _CustomZone.runGuarded  (dart:async/zone.dart:923:7)
    E/flutter (17086): #16     _CustomZone.bindCallbackGuarded.<anonymous closure>  (dart:async/zone.dart:963:23)
    E/flutter (17086): #17     _microtaskLoop  (dart:async/schedule_microtask.dart:41:21)
    E/flutter (17086): #18     _startMicrotaskLoop  (dart:async/schedule_microtask.dart:50:5)
    E/flutter (17086):
    

    Please do let me know in case if you need more information.

    Thanks

    opened by abdulwahid24 2
  • The getter 'listeners' was called on null.

    The getter 'listeners' was called on null.

    Implemented as the guide, but get the error below:

    I/flutter (18296): Another exception was thrown: NoSuchMethodError: The getter 'listeners' was called on null.
    I/flutter (18296): Another exception was thrown: RenderFlex children have non-zero flex but incoming height constraints are unbounded.
    
    opened by liuyuejiang 2
  • No way to set choice screen background

    No way to set choice screen background

    I could not find a way to set a background of the choice screen. It seems it does not inherit a background of the MaterialApp like:

    ThemeData(
            brightness: Brightness.dark,
            scaffoldBackgroundColor: background,
            backgroundColor: background,
    ),
    

    so even though the whole material app background is set to dark, the Direct Select Flutter Widget uses white somehow.

    opened by dvorapa 2
  • Dynamic drag speed for both long and short lists

    Dynamic drag speed for both long and short lists

    I am using the selector for long lists (more than 80 items). What I had to do to support better navigation is to dynamically modify the drag speed multiplier from this: https://github.com/LanarsInc/direct-select-flutter/blob/452bc6bebeb2f1828f3db0f35321f7f4a1e5afbe/lib/direct_select_container.dart#L236 To this: dragDy * (widget.dragSpeedMultiplier * (_currentList.items.length/11)));

    opened by ibraheem-nt 1
  • Ability to customize the container

    Ability to customize the container

    Hi @LanarsInc,

    Please can we have the ability to customize the DirectSelectContainer (especially the Container decoration)? To have for example, a custom background color instead of the default scaffoldBackgroundColor.

    Thanks.

    opened by na2axl 1
  • NoSuchMethodError: The getter 'listeners' was called on null

    NoSuchMethodError: The getter 'listeners' was called on null

    I get this error when integrating your plugin. The implementation was exactly as the example provided.

    int categoryPosition = 0;

    List<String> _categories = [  "Breakfast1",
    "Breakfast2",
    "Lunch1",
    "Lunch2",
    "Dinner1",
    "Dinner2",];
    
    DirectSelectItem<String> getDropDownMenuItem(String value) {
     return DirectSelectItem<String>(
         itemHeight: 56,
         value: value,
         itemBuilder: (context, value) {
           return Text(value);
         });
    }
    
    _getDslDecoration() {
       return BoxDecoration(
         border: BorderDirectional(
           bottom: BorderSide(width: 1, color: Colors.black12),
           top: BorderSide(width: 1, color: Colors.black12),
         ),
       );
     }
    
    Row(
                                  children: <Widget>[
                                    DirectSelectList<String>(
                                        values: _categories,
                                        defaultItemIndex: categoryPosition,
                                        itemBuilder: (String value) =>
                                            getDropDownMenuItem(value),
                                        focusedItemDecoration: _getDslDecoration(),
                                        onItemSelectedListener: (item, index, context) {
                                          setState(() {
                                            categoryPosition = index;
                                          });
                                          Scaffold.of(context).showSnackBar(
                                              SnackBar(content: Text(item)));
                                        }),
                                        Padding(
                                        padding: EdgeInsets.only(right: 8),
                                          child: Icon(
          Icons.unfold_more,
          color: Colors.black,
        ),
                                        )
                                  ],
                                ),`
    
    
    flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
    flutter: The following NoSuchMethodError was thrown building MediaQuery(MediaQueryData(size: Size(375.0,
    flutter: 812.0), devicePixelRatio: 3.0, textScaleFactor: 1.0, platformBrightness: Brightness.light, padding:
    flutter: EdgeInsets.zero, viewPadding: EdgeInsets.zero, viewInsets: EdgeInsets.zero, alwaysUse24HourFormat:
    flutter: false, accessibleNavigation: false, disableAnimations: false, invertColors: false, boldText:
    flutter: false)):
    flutter: The getter 'listeners' was called on null.
    flutter: Receiver: null
    flutter: Tried calling: listeners
    flutter:
    flutter: When the exception was thrown, this was the stack:
    flutter: #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:50:5)
    flutter: #1      DirectSelectContainer.of (package:direct_select_flutter/direct_select_container.dart:89:10)
    flutter: #2      DirectSelectState.didChangeDependencies (package:direct_select_flutter/direct_select_list.dart:122:46)
    flutter: #3      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4051:12)
    flutter: #4      ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #5      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #6      MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5198:32)
    flutter: #7      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #8      MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5198:32)
    flutter: #9      Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #10     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #11     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #12     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #13     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5198:32)
    flutter: #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #15     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #17     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #18     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #19     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #20     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #21     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #22     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #23     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #24     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #25     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #26     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #27     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #28     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #30     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #32     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #33     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #34     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #35     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #36     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #37     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #38     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #39     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #40     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #41     ParentDataElement.mount (package:flutter/src/widgets/framework.dart:4279:11)
    flutter: #42     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #43     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5198:32)
    flutter: #44     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #45     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #46     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #47     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #48     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #49     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #50     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #51     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #52     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #53     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #54     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #55     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #56     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #57     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #58     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #59     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #60     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #61     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #62     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #63     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #64     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #65     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #66     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #67     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #68     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #69     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #70     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #71     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #72     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #73     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #74     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #75     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #76     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #77     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #78     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #79     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #80     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #81     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #82     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #83     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #84     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #85     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #86     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #87     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #88     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #89     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #90     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #91     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #92     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #93     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #94     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #95     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #96     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #97     Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #98     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #99     Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #100    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #101    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #102    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #103    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #104    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #105    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #106    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #107    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #108    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #109    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #110    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #111    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #112    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #113    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #114    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #115    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #116    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #117    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #118    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #119    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #120    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #121    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #122    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #123    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #124    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #125    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #126    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #127    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #128    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #129    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #130    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #131    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #132    MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5198:32)
    flutter: #133    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #134    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #135    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #136    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #137    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #138    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #139    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #140    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #141    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #142    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #143    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #144    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #145    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #146    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #147    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #148    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #149    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #150    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #151    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #152    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #153    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #154    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #155    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #156    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #157    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #158    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #159    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #160    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #161    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #162    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #163    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #164    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #165    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #166    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #167    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #168    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #169    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #170    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #171    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #172    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #173    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #174    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #175    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #176    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #177    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #178    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #179    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #180    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #181    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #182    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #183    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #184    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #185    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #186    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #187    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #188    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #189    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #190    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #191    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #192    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #193    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #194    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #195    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #196    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #197    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #198    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #199    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #200    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #201    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #202    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #203    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #204    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #205    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #206    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #207    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #208    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #209    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #210    SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5092:14)
    flutter: #211    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #212    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #213    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #214    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #215    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #216    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #217    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #218    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #219    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #220    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #221    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #222    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #223    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #224    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #225    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #226    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #227    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #228    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3907:5)
    flutter: #229    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4053:11)
    flutter: #230    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3902:5)
    flutter: #231    Element.inflateWidget (package:flutter/src/widgets/framework.dart:3084:14)
    flutter: #232    Element.updateChild (package:flutter/src/widgets/framework.dart:2887:12)
    flutter: #233    RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:4875:32)
    flutter: #234    MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5208:17)
    flutter: #235    Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
    flutter: #236    _TheatreElement.update (package:flutter/src/widgets/overlay.dart:607:16)
    flutter: #237    Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
    flutter: #238    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #239    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #240    StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
    flutter: #241    Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
    flutter: #242    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #243    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #244    ProxyElement.update (package:flutter/src/widgets/framework.dart:4219:5)
    flutter: #245    _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:94:11)
    flutter: #246    Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
    flutter: #247    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
    flutter: #248    Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
    flutter: #249    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #250    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #251    StatefulElement.update (package:flutter/src/widgets/framework.dart:4085:5)
    flutter: #252    Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
    flutter: #253    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
    flutter: #254    Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
    flutter: #255    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5099:14)
    flutter: #256    Element.updateChild (package:flutter/src/widgets/framework.dart:2876:15)
    flutter: #257    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3935:16)
    flutter: #258    Element.rebuild (package:flutter/src/widgets/framework.dart:3721:5)
    flutter: #259    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2340:33)
    flutter: #260    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:700:20)
    flutter: #261    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:285:5)
    flutter: #262    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1016:15)
    flutter: #263    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:958:9)
    flutter: #264    _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:874:5)
    flutter: #268    _invoke (dart:ui/hooks.dart:236:10)
    flutter: #269    _drawFrame (dart:ui/hooks.dart:194:3)
    flutter: (elided 3 frames from package dart:async)
    flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════
    flutter: Another exception was thrown: NoSuchMethodError: The getter 'listeners' was called on null.
    flutter: Another exception was thrown: NoSuchMethodError: The getter 'listeners' was called on null.
    flutter: Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 4363 pos 14: '_dependents.isEmpty': is not true.
    
    opened by iamEtornam 1
  • Change background color of selected Item and not the list (issue)

    Change background color of selected Item and not the list (issue)

    Flutter Doctor

    flutter doctor -v

    [√] Flutter (Channel stable, 2.2.3, on Microsoft Windows [Version 10.0.19043.1165], locale en-US)
        • Flutter version 2.2.3 at C:\flutter
        • Framework revision f4abaa0735 (8 weeks ago), 2021-07-01 12:46:11 -0700
        • Engine revision 241c87ad80
        • Dart version 2.13.4
    
    [√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
        • Android SDK at C:\Users\Anas\AppData\Local\Android\sdk
        • Platform android-30, build-tools 30.0.3
        • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
        • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
        • All Android licenses accepted.
    
    [√] Chrome - develop for the web
        • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
    
    [√] Android Studio (version 4.1.0)
        • Android Studio at C:\Program Files\Android\Android Studio
        • Flutter plugin can be installed from:
           https://plugins.jetbrains.com/plugin/9212-flutter
        • Dart plugin can be installed from:
           https://plugins.jetbrains.com/plugin/6351-dart
        • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    
    [√] VS Code (version 1.57.1)
        • VS Code at C:\Users\Anas\AppData\Local\Programs\Microsoft VS Code
        • Flutter extension can be installed from:
           https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
    
    [√] Connected device (3 available)
        • M2012K11AG (mobile) • abe3a308 • android-arm64  • Android 11 (API 30)
        • Chrome (web)        • chrome   • web-javascript • Google Chrome 92.0.4515.159
        • Edge (web)          • edge     • web-javascript • Microsoft Edge 92.0.902.78
    
    • No issues found!
    
    
    

    I am trying to change the background color after the item is selected. Already Tried i have seen this but it only changes the color of the list background color and not the container which is being shown after the item is selected.

    Open This Image

    opened by Anas-jed 0
  •  The getter 'DirectSelectContainer' isn't defined for the class 'DirectSelectState<T>'

    The getter 'DirectSelectContainer' isn't defined for the class 'DirectSelectState'

    /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/direct_select_flutter-1.1.1/lib/direct_select_list.dart:1:8: Error: Error when reading '/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/direct_select_flutter-1.1.1/lib/direct_select_container.dart': The system cannot find the file specified.

    import 'package:direct_select_flutter/direct_select_container.dart'; ^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/direct_select_flutter-1.1.1/lib/direct_select_list.dart:133:24: Error: The getter 'DirectSelectContainer' isn't defined for the class 'DirectSelectState'.

    • 'DirectSelectState' is from 'package:direct_select_flutter/direct_select_list.dart' ('/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/direct_select_flutter-1.1.1/lib/direct_select_list.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'DirectSelectContainer'. final dsListener = DirectSelectContainer.of(context); ^^^^^^^^^^^^^^^^^^^^^
    opened by mehbooburrehman 0
  • Instead of string being an object

    Instead of string being an object

    Hello, how instead of using a string how do I use an object? For example, create an object with name and value and in the display show item.name but the value will be item.value. Has as?

    opened by fabioselau077 1
  • Allow to use Long Press to open select box + DirectSelect overlay takes same size as underlying child

    Allow to use Long Press to open select box + DirectSelect overlay takes same size as underlying child

    Usable in cases when direct_select is used in a scrollable container, ex. in bottom sheet. With default configuration there is no possibility to close bottom sheet by swipe down gesture as direct_select catches the tapDown and shows the select box. Same behaviour on any screen with a scroll when start scrolling from the position of direct_select.

    opened by viktar-d 0
  • Issue selecting items when in a scrollable view

    Issue selecting items when in a scrollable view

    When the select input is placed in a scrollable view and the select input is displayed at the bottom of your screen, it is not possible to use as the user either doesn't have enough screen space to scroll enough or they cannot see any options as they are hidden from the view because the user hasn't scrolled down enough before opening the select.

    opened by Francismb 3
Owner
null
Tour guide App UI in Flutter Consist of Three Pages. First Screen is Splash Screen , Second is welcome screen routing to third Screen and Third screen consist of details , navigation, places, and responsive UI.

Tour Guide // Tourism App Ui in Flutter. Tour Guid App Ui in Flutter. Visit Website Features State Management Navigation Bar Responsive Design Hybrid

Habib ullah 2 Nov 14, 2022
A custom is strong dropdown menu for Flutter

A custom is strong dropdown menu for Flutter. Easy to use and powerful for customization, it's up to you what you want to display in the dropdown menu!

干志雄 662 Dec 26, 2022
This Dart package offers developers a streamlined library of Flutter widgets, useful for expanding widgets and text views, when users interact with them.

This Dart package offers developers a streamlined library of Flutter widgets, useful for expanding widgets and text views, when users interact with them.

Jesús Rodríguez 44 Dec 6, 2022
A simple widget for animating a set of images with full custom controls as an alternative to using a GIF file.

image_sequence_animator A simple widget for animating a set of images with full custom controls as an alternative to using a GIF file. If you have a G

AliYigitBireroglu 134 Dec 22, 2022
The Coolicons icon pack for Flutter with over 400 icons available for your flutter project.

coolicons This flutter package allows you to use the Coolicons icon pack. Made from Coolicons. ?? Installation In the dependencies: section of your pu

Stephen Joel 1 May 24, 2022
🛍 A full E-commerce app with nice UI consists of on-boarding, login, sign-up, home, product details, cart and user profile.

?? A full E-commerce app with nice UI consists of on-boarding, login, sign-up, home, product details, cart and user profile.

null 56 Nov 27, 2022
With flutter tags you can create selectable or input tags that automatically adapt to the screen width

flutter_tags Create beautiful tags quickly and easily. Installing Add this to your package's pubspec.yaml file: dependencies: flutter_tags: "^0.4.9+

Antonino Di Natale 417 Dec 21, 2022
A Splash screen with curved custom bottom sheet and dots indicator within it.

Pub.dev Curved Splash Screen A Splash screen with curved custom bottom sheet and dots indicator within it. You can add your custom splash screens acco

Hosain Mohamed 16 Dec 1, 2022
The most complete flutter plugin packages for open various settings screen in Android and Ios

open_settings The most complete flutter plugin packages for open various settings screen in Android and Ios For Android: this plugin currently support

Ali Hoseinpoor 15 Dec 11, 2022
I developed this application just for learning purpose. There are over 20 screen variations.

Welcome to Flutter-Shopping-UI-Kit ?? Shopping UI design in Flutter Flutter-Shopping-UI-Kit Introduction I made an e-commerce UI concept in Flutter fo

Ali Anıl Koçak 591 Dec 26, 2022
A flutter plugin for Easily make Flutter apps responsive. Automatically adapt UI to different screen sizes. Responsiveness made simple.

A flutter plugin for Easily make Flutter apps responsive. Automatically adapt UI to different screen sizes. Responsiveness made simple.

Urmish Patel 191 Dec 29, 2022
E-commerce On-boarding Screen UI using flutter

E commerce Onboarding Screen Watch it on YouTube E commerce On-boarding Screen U

Behruz Hurramov 3 Mar 24, 2022
A nice clean onboarding screen for your e-commerce app that can run both Andriod and iOS devices because it builds with flutter

A nice clean onboarding screen for your e-commerce app that can run both Andriod and iOS devices because it builds with flutter

null 23 Dec 4, 2022
A simple animated radial menu widget for Flutter.

flutter_radial_menu A radial menu widget for Flutter. . Installation Install the latest version from pub. Quick Start Import the package, create a Rad

Victor Choueiri 434 Jan 7, 2023
Custom widget for Flutter

Flushbar Use this package if you need more customization when notifying your user. For Android developers, it is made to substitute toasts and snackba

Andre Haueisen 899 Dec 30, 2022
flutter stepper_touch widget

stepper_touch the concept of the widget inspired from Nikolay Kuchkarov. i extended the functionality to be more useful in real world applications Tha

Raouf Rahiche 271 Dec 30, 2022
A TypeAhead widget for Flutter, where you can show suggestions to users as they type

Flutter TypeAhead A TypeAhead (autocomplete) widget for Flutter, where you can show suggestions to users as they type Features Shows suggestions in an

null 661 Jan 5, 2023
A highly customisable Flutter widget for entering pin code. Suitable for use cases such as login and OTP.

pin_code_text_field It's a beautiful and highly customizable Flutter widget for entering pin code. Suitable for use cases such as login and OTP. Usage

Liew Jun Tung 309 Dec 28, 2022
Flutter FoldingCell widget

Simple FoldingCell widget Simple folding cell widget, pass frontWidget and innerWidget to fold and unfold. Installation Add dependency in pubspec.yaml

Farrukh 513 Dec 30, 2022