Flutter plugin to implement a Material Design Speed Dial

Overview

Flutter Speed Dial

Flutter package to render a Material Design Speed Dial.

GitHub release License Classic API Docs Usage

Usage

The SpeedDial widget is built to be placed in the Scaffold.floatingActionButton argument, replacing the FloatingActionButton widget. You can set its position using Scaffold.floatingActionButtonLocation argument. It can also be used with Scaffold.bottomNavigationBar and Snackbar.

Null safety is available from version 3.0.5 ( It is also backward compatible, meaning you can use it with non null safe code too )

Labels

SpeedDial can take any Widget as label SpeedDial will use Extended FloatingActionButton property if label is specified. It also have activeLabel property by which you can specify the label which is shown when SpeedDial is open. It also comes with its labelTransitionBuilder which defaults to fade transition.

Also Every child's button have label property which accepts String which can be styled by using labelStyle. If you want to specify a widget then you can use labelWidget.
If the label parameter is not provided, then the label will be not rendered.

Types of child for SpeedDial (Ordered by their priority)

Animated Icon using animatedIcon property SpeedDial's AnimatedIcon has two specific parameters:
  • animatedIcon takes an AnimatedIconData widget
  • animatedIconTheme takes IconThemeData
Widget using child & activeChild property SpeedDial's Widget has two specific parameters:
  • child takes a widget and is the default placeholder if dial is not open.
  • activeChild takes a widget and is the child's Widget which is used when dial is open, not required.
IconData using icon & activeIcon property SpeedDial's IconData has three specific parameters:
  • icon takes a IconData and is the default placeholder if dial is not open.
  • activeIcon takes a IconData and is the child's IconData which is used when dial is open, not required.
  • iconTheme takes its IconThemeData which includes color and size.

The package will handle the animation by itself.

Handle spacing

There are various properties for SpeedDial by which you can adjust the spacing:

  1. spacing - This parameter handles the space b/w speed dial and its children.

  2. spaceBetweenChildren - As the name suggests, this is used to adjust the space b/w every child element

  3. childPadding - This will adjust the padding of children speed dial button, this will help you to control the size of the children button more effectively.

  4. childMargin - This will help you to adjust the margin b/w children speed dial button and its label.

Close on WillPop

Closes automatically on back button press, if dial is open. If you don't want this behaviour then simply change the value of closeDialOnPop to false.

How to use openCloseDial property:

  1. Create a value notifier named isDialOpen:
ValueNotifier<bool> isDialOpen = ValueNotifier(false);
  1. Then set openCloseDial to isDialOpen in your SpeedDial:
SpeedDial(
  ...
  openCloseDial: isDialOpen,
  ...
)
  1. Now you can change the state of dial open:
isDialOpen.value = false;

Example Usage

See Example Code for more info.

Issues & Feedback

Please file an issue to send feedback or report a bug,
If you want to ask a question or suggest an idea then you can open an discussion.
Thank you!

Contributing

Every pull request is welcome.

Comments
  • Flutter 2.5: Null check operator used on a null value - on toggleOverlay's dialkey globalPaintBounds

    Flutter 2.5: Null check operator used on a null value - on toggleOverlay's dialkey globalPaintBounds

    image

    The following _CastError was thrown building _OverlayEntryWidget-[LabeledGlobalKey<_OverlayEntryWidgetState>#2df95](dirty, state: _OverlayEntryWidgetState#daf4c):
    Null check operator used on a null value
    

    It appears to be thrown exactly on line 347 when dialKey.globalPaintBounds is being accessed but is null.

    This is happening on second open. I can open and close but then not open again without this error.

    opened by CP-casp 40
  • A OverlayEntry was used after being disposed.

    A OverlayEntry was used after being disposed.

    Hey guys, I get this stack trace when using the plugin. Ever seen this before?

    stack trace
    flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
    flutter: The following assertion was thrown while finalizing the widget tree:
    flutter: A OverlayEntry was used after being disposed.
    flutter: Once you have called dispose() on a OverlayEntry, it can no longer be used.
    flutter:
    flutter: When the exception was thrown, this was the stack:
    flutter: #0      ChangeNotifier._debugAssertNotDisposed.<anonymous closure> (package:flutter/src/foundation/change_notifier.dart:114:9)
    flutter: #1      ChangeNotifier._debugAssertNotDisposed (package:flutter/src/foundation/change_notifier.dart:120:6)
    flutter: #2      ChangeNotifier.notifyListeners (package:flutter/src/foundation/change_notifier.dart:288:12)
    flutter: #3      OverlayEntry._updateMounted (package:flutter/src/widgets/overlay.dart:130:5)
    flutter: #4      _OverlayEntryWidgetState.dispose (package:flutter/src/widgets/overlay.dart:200:18)
    flutter: #5      StatefulElement.unmount (package:flutter/src/widgets/framework.dart:4895:11)
    flutter: #6      _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1883:13)
    flutter: #7      _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #8      MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6297:16)
    flutter: #9      _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #10     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #11     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #12     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #13     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #14     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #15     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #16     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #17     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #18     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #19     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #20     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6182:14)
    flutter: #21     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #22     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #23     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #24     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #25     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #26     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6182:14)
    flutter: #27     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #28     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #29     SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6182:14)
    flutter: #30     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #31     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #32     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #33     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #34     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #35     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #36     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #37     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #38     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #39     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #40     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #41     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #42     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #43     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #44     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #45     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #46     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #47     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #48     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #49     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #50     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #51     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #52     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #53     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #54     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #55     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #56     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #57     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #58     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #59     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #60     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #61     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #62     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #63     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #64     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #65     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #66     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #67     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #68     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #69     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #70     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #71     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #72     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #73     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #74     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #75     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #76     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #77     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #78     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #79     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #80     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #81     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #82     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #83     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #84     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #85     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #86     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #87     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #88     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #89     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #90     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #91     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #92     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #93     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #94     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #95     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #96     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #97     _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #98     ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #99     _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #100    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #101    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #102    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #103    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #104    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #105    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #106    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #107    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #108    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #109    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #110    SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6182:14)
    flutter: #111    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #112    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #113    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #114    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #115    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #116    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #117    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #118    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #119    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #120    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #121    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #122    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #123    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #124    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #125    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: 15:08 +72 -14: Task interaction tests:  can add reminder [E]
    flutter:   Test failed. See exception logs above.
      The test description was: can add reminder
    flutter:
    flutter: Consider enabling the flag chain-stack-traces to receive more detailed exceptions.
    For example, 'dart test --chain-stack-traces'.
    flutter: 15:08 +72 -15: Task interaction tests:  can bulk select tasks and delete
    flutter: 15:10 +72 -15: Task interaction tests:  can add reminder
    flutter: #126    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #127    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #128    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #129    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #130    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #131    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #132    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #133    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #134    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #135    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #136    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #137    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #138    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #139    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #140    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #141    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #142    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #143    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #144    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #145    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #146    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #147    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #148    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #149    SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6182:14)
    flutter: #150    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #151    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #152    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #153    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #154    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #155    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #156    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #157    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #158    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #159    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #160    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #161    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #162    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #163    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #164    SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6182:14)
    flutter: #165    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #166    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #167    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #168    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #169    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #170    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #171    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #172    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #173    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #174    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #175    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #176    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #177    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #178    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #179    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #180    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #181    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #182    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #183    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #184    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #185    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #186    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #187    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #188    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #189    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #190    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #191    SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:6182:14)
    flutter: #192    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #193    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #194    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #195    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #196    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #197    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #198    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #199    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #200    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #201    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #202    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #203    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #204    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #205    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #206    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #207    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #208    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #209    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #210    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #211    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #212    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #213    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #214    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #215    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #216    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #217    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #218    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #219    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #220    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #221    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #222    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #223    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #224    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #225    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #226    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #227    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #228    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #229    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #230    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #231    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #232    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #233    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #234    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #235    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #236    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #237    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #238    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #239    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #240    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #241    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #242    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #243    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #244    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #245    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #246    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #247    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #248    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #249    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #250    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #251    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #252    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #253    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #254    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #255    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #256    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #257    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #258    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #259    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #260    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #261    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #262    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #263    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #264    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #265    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #266    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #267    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #268    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #269    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #270    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #271    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #272    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #273    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #274    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #275    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #276    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #277    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #278    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #279    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #280    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #281    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #282    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #283    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #284    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #285    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #286    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #287    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #288    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #289    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #290    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #291    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #292    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #293    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #294    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #295    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #296    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #297    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #298    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #299    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #300    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #301    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #302    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #303    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #304    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #305    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #306    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #307    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #308    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #309    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #310    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #311    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #312    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #313    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #314    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #315    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #316    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #317    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #318    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #319    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #320    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #321    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #322    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #323    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #324    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #325    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #326    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #327    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #328    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #329    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #330    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #331    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #332    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #333    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #334    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #335    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #336    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #337    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #338    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #339    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #340    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #341    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #342    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #343    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #344    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #345    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #346    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #347    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #348    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #349    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #350    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #351    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #352    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #353    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #354    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #355    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #356    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #357    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #358    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #359    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #360    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #361    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #362    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #363    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #364    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #365    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #366    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #367    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #368    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #369    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #370    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #371    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #372    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #373    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #374    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #375    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #376    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #377    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #378    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #379    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #380    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #381    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #382    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #383    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #384    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #385    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #386    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #387    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #388    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #389    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #390    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #391    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #392    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #393    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #394    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #395    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #396    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #397    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #398    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #399    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #400    _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1881:7)
    flutter: #401    ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:4719:14)
    flutter: #402    _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1879:13)
    flutter: #403    ListIterable.forEach (dart:_internal/iterable.dart:39:13)
    flutter: #404    _InactiveElements._unmountAll (package:flutter/src/widgets/framework.dart:1892:25)
    flutter: #405    BuildOwner.finalizeTree.<anonymous closure> (package:flutter/src/widgets/framework.dart:2879:27)
    flutter: #406    BuildOwner.lockState (package:flutter/src/widgets/framework.dart:2510:15)
    flutter: #407    BuildOwner.finalizeTree (package:flutter/src/widgets/framework.dart:2878:7)
    flutter: #408    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:884:19)
    flutter: #409    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
    flutter: #410    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
    flutter: #411    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
    flutter: #412    LiveTestWidgetsFlutterBinding.handleDrawFrame (package:flutter_test/src/binding.dart:1503:13)
    flutter: #413    SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:863:7)
    flutter: (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
    
    
    My code:
    SpeedDial(
            heroTag: null,
            child: const Icon(Icons.add),
            children: [
              SpeedDialChild(
                child: const Icon(Icons.add),
                label: 'ABC'
                onTap: () {},
              ),
              SpeedDialChild(
                child: const Icon(Icons.delete),
                label: 'XYZ'
                onTap: () {},
              ),
            ],
          );
    
    Need more info 
    opened by jangruenwaldt 22
  • add being able to build the dial as open by default.

    add being able to build the dial as open by default.

    I'm building a different dial with different options upon pressing a child button, and I'd like the ability to build the dial in an open state instead of a closed one.

    good first issue v4 
    opened by castdrian 21
  • Support null safety

    Support null safety

    Null safety is comming to flutter and dart and we should support it:

    https://dart.dev/null-safety

    Maybe we should create a branch where we can start working on it depending on the actual master.

    Could you assign me the issue? I will try to get my hands on this in the next weeks. I actually need to understand the new concept anyway for my own apps and this would be a good starting point :)

    enhancement Solved 
    opened by m0veax 15
  • Dynamically making children visible

    Dynamically making children visible

    I am trying to reduce the clutter of my speed dial by switching between views. The way I do it is by adding "visible" field to all children based on a variable. I want to change the visibility when one of the icons is pressed. in the ontap of this icon i have

              onTap: () async {
                 setState(() {
                   _more_visible = true;
    
                 });
    
    

    But the speed dial is closing on the tap. Next time its opening it will show the extra items. Is there a way to keep the speed dial open after a tap?

    opened by mosheliv 14
  • 6.1.0+1 broke the dispose method

    6.1.0+1 broke the dispose method

    I've got 1800 crashes across 700 users since updating to 6.1.0+1, so this is not a freak case.

    Here's the complete stacktrace, but only the last 2 are relevant :

    Fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: Null check operator used on a null value. Error thrown Instance of 'ErrorSummary'.
           at OverlayEntry.remove(overlay.dart:163)
           at _SpeedDialState.dispose(speed_dial.dart:232)
           at StatefulElement.unmount(framework.dart:5105)
           at _InactiveElements._unmount(framework.dart:1917)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at MultiChildRenderObjectElement.visitChildren(framework.dart:6398)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at MultiChildRenderObjectElement.visitChildren(framework.dart:6398)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at SingleChildRenderObjectElement.visitChildren(framework.dart:6286)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at _InactiveElements._unmount.<fn>(framework.dart:1915)
           at ComponentElement.visitChildren(framework.dart:4931)
           at _InactiveElements._unmount(framework.dart:1913)
           at ListIterable.forEach(dart:_internal)
           at _InactiveElements._unmountAll(framework.dart:1926)
           at BuildOwner.lockState(framework.dart:2523)
           at BuildOwner.finalizeTree(framework.dart:2947)
           at WidgetsBinding.drawFrame(binding.dart:885)
           at RendererBinding._handlePersistentFrameCallback(binding.dart:378)
           at SchedulerBinding._invokeFrameCallback(binding.dart:1175)
           at SchedulerBinding.handleDrawFrame(binding.dart:1104)
           at SchedulerBinding._handleDrawFrame(binding.dart:1015)
    
    opened by TheCarpetMerchant 12
  • SpeedDial prevents swiping gesture to return to previous page

    SpeedDial prevents swiping gesture to return to previous page

    If SpeedDial is on a Scaffold, on a page that you navigate to, you will no longer be able to swipe back.

    SpeedDial appears to prevent all back navigation, at least on iOS.

    The demo app https://github.com/jonmountjoy/speeddialbug shows a home page and 3 buttons to navigate to 3 pages using a standard Navigator.of(context).push(...).

    1. The first page has a standard scaffold. You will be able to swipe back.
    2. The second page has a SpeedDial. Swiping no longer works.
    3. The third page has a standard FloatingActionButton. You will be able to swipe back.

    Is this a bug? I can't seem to find it in the documentation, nor a way to disable the disabling.

    opened by jonmountjoy 12
  • SpeedDialChild shape is ignored

    SpeedDialChild shape is ignored

    Screenshot_1584258931 Hi! I am running into an issue where the children of speed dial are ignoring the shape parameter provided, although the speed dial itself is rendering its shape normally. Here is a minimum example that shows this:

    import 'package:flutter/material.dart';
    import 'package:flutter_speed_dial/flutter_speed_dial.dart';
    
    void main() => runApp(MyApp());
    
    class MyApp extends StatelessWidget {
      // This widget is the root of your application.
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Demo',
          theme: ThemeData(
            primarySwatch: Colors.blue,
          ),
          home: MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    }
    
    class MyHomePage extends StatefulWidget {
      MyHomePage({Key key, this.title}) : super(key: key);
    
      final String title;
    
      @override
      _MyHomePageState createState() => _MyHomePageState();
    }
    
    class _MyHomePageState extends State<MyHomePage> {
      int _counter = 0;
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text(widget.title),
          ),
          body: Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Text(
                  'You have pushed the button this many times:',
                ),
                Text(
                  '$_counter',
                  style: Theme.of(context).textTheme.headline4,
                ),
              ],
            ),
          ),
          floatingActionButton: SpeedDial(
            animatedIcon: AnimatedIcons.menu_close,
            animatedIconTheme: const IconThemeData(size: 22.0),
            closeManually: true,
            curve: Curves.bounceIn,
            tooltip: 'Toggle options',
            backgroundColor: Colors.black,
            foregroundColor: Colors.white,
            elevation: 8.0,
            shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
            children: [
              SpeedDialChild(
                  shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.circular(10)),
                  child: Icon(Icons.accessibility),
                  foregroundColor: Colors.white,
                  backgroundColor: Colors.black,
                  onTap: () => print('FIRST CHILD')),
            ],
          ),
        );
      }
    }
    
    opened by KhatibFX 10
  • OverlayEntry error

    OverlayEntry error

    Hi there, thanks for the great package first of all. I really appreciate it. I'm using it on a contacts page, one of the speedDialChild removes a contact and rebuilds the page. I'm getting this error upon clicking delete contact SpeedDialChild:

    An OverlayEntry must first be removed from the Overlay before dispose is called.

    I appreciate if you could help. thanks in advance.

    opened by Seferi 9
  • Overlay stays on top after SpeedDialChild.onTap push Navigator

    Overlay stays on top after SpeedDialChild.onTap push Navigator

    If the click on a SpeedDialChild is used to Navigate to another view, with

    onTap: () => Navigator.push(
      context,
      MaterialPageRoute(
          builder: (context) =>
              const AnotherView()),
    ),
    

    the BackgroundOverlay stays on and the view is unclickable.

    bug 
    opened by levydanqc 9
  • SpeedDialChild not reactive when setting state in onTap

    SpeedDialChild not reactive when setting state in onTap

    First of all, thank you for this great package! I use it in my app to apply filters to a list. Therefore, I change the icons and colors of the SpeedDialChildren to indicate whether a filter is active or not. In the most recent version, these changes are not applied until the speed dial is closed and reopened. See the below steps to reproduce the behaviour using your example.

    Steps to Reproduce

    • Use the example in this repository as a basis
    • Change the ontap method of the first child to onTap: () => setState(() => rmicons = !rmicons),
    • Start the Example
    • Set Close Manually to True
    • Open the FAB
    • Click on the First Child

    Expected Behaviour

    • The icon disappears after clicking

    Actual Behaviour

    • The icon does not change until the speed dial is closed and opened again
    opened by p0wl90 9
  • Corners appear black when using border radius for icon and overlay with opacity

    Corners appear black when using border radius for icon and overlay with opacity

    Screenshot_1667981752

    SpeedDial( buttonSize: Size(50.0, 50), backgroundColor: Colors.blue, curve: Curves.bounceInOut, overlayColor: Colors.black, overlayOpacity: 0.4, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.5.r)), icon: Icons.add, activeIcon: Icons.close, elevation: 0, spacing: 13, animationDuration: Duration(milliseconds: 5), iconTheme: IconThemeData(color: Colors.white, size: 32), children: [ SpeedDialChild( labelWidget: Container( height: 35.h, alignment: Alignment.center, padding: EdgeInsets.symmetric(horizontal: 14.w, vertical: 7.h), decoration: BoxDecoration( borderRadius: BorderRadius.circular(7), color: Colors.blue), child: CustomText(text: 'Add', fontStyle: FontStyle.C5), ), onTap: () => print('Add')), SpeedDialChild( labelWidget: Container( height: 35.h, alignment: Alignment.center, padding: EdgeInsets.symmetric(horizontal: 14.w, vertical: 7.h), decoration: BoxDecoration( borderRadius: BorderRadius.circular(7), color: Colors.blue), child: CustomText(text: 'Edit', fontStyle: FontStyle.C5), ), onTap: () => print('Edit')), SpeedDialChild( labelWidget: Container( height: 35.h, alignment: Alignment.center, padding: EdgeInsets.symmetric(horizontal: 14.w, vertical: 7.h), decoration: BoxDecoration( borderRadius: BorderRadius.circular(7), color: Colors.blue), child: CustomText(text: 'Delete', fontStyle: FontStyle.C5), ), onTap: () => print('Delete')), ], )

    opened by VijayMeenaRI 0
  • Flickering the color of the FAB when you click on it

    Flickering the color of the FAB when you click on it

    The color of the button flickers during the open/close state switching. This greatly spoils the impression of its use. Especially when using the dark theme.

    Peculiarities:

    • for me it is relevant ONLY when use Flutter Web (also tested on Windows - it works correctly)
    • it is relevant even in simplest use cases
    • it does not depend on whether an animatedIcon is used on the SpeedDial
    • this effect is especially noticeable when using a dark theme and dark FAB colors

    I recorded a short video demonstrating this effect. It is not always visible on the video, but in reality the effect is always reproduced when the state is switched. https://user-images.githubusercontent.com/21262076/196223806-983e5e80-0a77-453d-9a1b-b80654db577c.mp4

    This is very annoying. Could you please have a look?

    opened by yegor-pelykh 9
  • Material 3

    Material 3

    Hi! Is it possible to make this control look like Material 3 FAB if that "Material 3" mode is used in the application?

    Just for information: The "Material 3" theme mode can be set using the useMaterial3 property of the ThemeData class when setting it as a theme in the MaterialApp widget. example

    In fact, I have already tried this "Material 3" mode in my app with a SpeedDial. This control already looks pretty good when opened: speed-dial example

    But the main FAB button still looks wrong, which looks quite inappropriate.

    Could you fix this button with some styling, please?

    For reference, the documentation for Material 3 FAB: https://m3.material.io/components/floating-action-button

    opened by yegor-pelykh 2
  • Feature Request -> Tooltip

    Feature Request -> Tooltip

    I was wondering will you ever add a tooltip option for the SpeedDialChild?

    it will be very good for my and our applications, flutter have the built in Tooltip Class but it will so much easier and better if you will add it to the library.

    enhancement Need more info 
    opened by LidorPrototype 2
  • Widgets under the overlay are focusable

    Widgets under the overlay are focusable

    Hi If we use the overlay (renderOverlay: true), the underlying widgets are still focusable for example by pressing Tab on desktop platform.

    sdfbug2

    The

    FocusScope.of(context).canRequestFocus = false; // true
    FocusScope.of(context).descendantsAreFocusable = false; // true
    

    in the _SpeedDialState.toggleOverlay method can help but I'm not sure if it's the best and bug-free way.

    bug 
    opened by Pourqavam 0
Releases(6.2.0)
  • 6.2.0(Oct 14, 2022)

    What's Changed

    • Fix Overlay error by @prateekmedia in https://github.com/darioielardi/flutter_speed_dial/pull/278
    • Bump version to 6.2.0 by @prateekmedia in https://github.com/darioielardi/flutter_speed_dial/pull/278
    • Update documentation by @poojasunal in https://github.com/darioielardi/flutter_speed_dial/pull/276

    New Contributors

    • @poojasunal made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/276

    Full Changelog: https://github.com/darioielardi/flutter_speed_dial/compare/6.1.0...6.2.0

    Source code(tar.gz)
    Source code(zip)
  • 6.1.0(Oct 5, 2022)

    So After Few Months we are back and this time with more bug fixes and feature improvement.

    What's Changed

    • Add ripple effect and click mouse cursor to child label using InkWell by @Pourqavam in https://github.com/darioielardi/flutter_speed_dial/pull/256
    • Support to dynamically asynchronously re-populating children when opening by @jamonkko in https://github.com/darioielardi/flutter_speed_dial/pull/259
    • Fixed null pointer issue called by globalPaintBounds being null while in left or right direction mode. by @calvin-verticalscope in https://github.com/darioielardi/flutter_speed_dial/pull/260
    • Add mini parameter by @prateekmedia in https://github.com/darioielardi/flutter_speed_dial/pull/272

    New Contributors

    • @Pourqavam made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/256
    • @jamonkko made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/259
    • @calvin-verticalscope made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/260

    Full Changelog: https://github.com/darioielardi/flutter_speed_dial/compare/6.0.0...6.1.0

    Source code(tar.gz)
    Source code(zip)
  • 6.0.0(Apr 29, 2022)

    What's Changed

    • refactored stateful widget to stateless widget by @AbhishekDoshi26 in https://github.com/darioielardi/flutter_speed_dial/pull/245
    • Refactor of animationSpeed by @AbhishekDoshi26 in https://github.com/darioielardi/flutter_speed_dial/pull/244
    • provide childAnimation as param by @AbhishekDoshi26 and @luca-colazzo in https://github.com/darioielardi/flutter_speed_dial/pull/247

    New Contributors

    • @AbhishekDoshi26 made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/245

    Full Changelog: https://github.com/darioielardi/flutter_speed_dial/compare/5.1.0...6.0.0

    Source code(tar.gz)
    Source code(zip)
  • 5.1.0(Apr 2, 2022)

    What's Changed

    • Fixed widget dispose method, now backgroundOverlay should be disposed correctly.
    • Improved null-safety by @luca-colazzo in https://github.com/darioielardi/flutter_speed_dial/commit/6ad15d6a55dc106d775e2dd3591bdc57c1a80c46 and https://github.com/darioielardi/flutter_speed_dial/commit/b0b169b37eec7b7d2895201fede2aea125508a99.
    • Improved documentation by @luca-colazzo in https://github.com/darioielardi/flutter_speed_dial/commit/a2edecbd2347612c9b6478a1d4823c1bb95161f3.
    • fix labelShadow by @dogbull in https://github.com/darioielardi/flutter_speed_dial/pull/225
    • Fix issue on backgroundOverlay by @PsyOhm23 in https://github.com/darioielardi/flutter_speed_dial/pull/236

    New Contributors

    • @dogbull made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/225
    • @PsyOhm23 made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/236

    Full Changelog: here Compare with previuos version: here

    Source code(tar.gz)
    Source code(zip)
  • 5.0.0+1(Dec 11, 2021)

    What's Changed

    • SystemMouseCursors is undefined by @peterbrown0 in https://github.com/darioielardi/flutter_speed_dial/pull/192
    • Fix widget state interaction after dispose by @davidmartos96 in https://github.com/darioielardi/flutter_speed_dial/pull/193
    • fix Flutter's animation assertion error when children.length > 5 by @OZEO-DOOZ in https://github.com/darioielardi/flutter_speed_dial/pull/195
    • Set the RotationAngle for the animation of the FAB icon by @xm0128 in https://github.com/darioielardi/flutter_speed_dial/pull/207
    • Added version in CHANGELOG.md by @xm0128 in https://github.com/darioielardi/flutter_speed_dial/pull/208
    • Fixed Overlay closing issue on back button press and Fixed null check operator crashes by @darshanpp in https://github.com/darioielardi/flutter_speed_dial/pull/214
    • Fix for #213, adding horizontal padding when the size is larger then 56 by @LachlanGrant in https://github.com/darioielardi/flutter_speed_dial/pull/215
    • Fixed Issue #210 by @luca-colazzo in https://github.com/darioielardi/flutter_speed_dial/pull/221

    New Contributors

    • @peterbrown0 made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/192
    • @davidmartos96 made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/193
    • @OZEO-DOOZ made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/195
    • @xm0128 made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/207
    • @darshanpp made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/214
    • @LachlanGrant made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/215
    • @luca-colazzo made their first contribution in https://github.com/darioielardi/flutter_speed_dial/pull/221

    Full Changelog: https://github.com/darioielardi/flutter_speed_dial/compare/4.2.0...5.0.0+1

    Source code(tar.gz)
    Source code(zip)
  • 4.2.0(Jul 28, 2021)

    Thanks to all the people who contributed to the project by opening issues we are able to stablize flutter_speed_dial API more.

    FULL CHANGELOG here

    To integrate in your app add this to your pubspec.yaml

      flutter_speed_dial: ^4.2.0
    

    If you want to contribute financially or you have any particular skill that maybe helpful to the project then you can mail me at [email protected] to discuss about it.

    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(Jul 10, 2021)

    Thanks to all the people who contributed to the project by opening issues we are able to stablize flutter_speed_dial API more.

    FULL CHANGELOG here

    To integrate in your app add this to your pubspec.yaml

      flutter_speed_dial: ^4.1.0
    

    If you want to contribute financially or you have any particular skill that maybe helpful to the project then you can mail me at [email protected] to discuss about it.

    Source code(tar.gz)
    Source code(zip)
  • 4.0.0-dev.1(May 29, 2021)

    Thanks to all the people who contributed to the project by opening issues we are able to stablize flutter_speed_dial API more.

    FULL CHANGELOG here

    To integrate in your app using git.

      flutter_speed_dial: ^4.0.0-dev.1
    

    If you want to contribute financially or you have any particular skill that maybe helpful to the project then you can mail me at [email protected] to discuss about it.

    Source code(tar.gz)
    Source code(zip)
  • 4.0.0-dev(May 21, 2021)

    Thanks to all the issue openers and all the people who helped me finding and fixing all the issues and completely overhauling flutter_speed_dial package.

    Full CHANGELOG here

    It now uses overlays instead of Stacks and have improved example and documentation.

    You can test it now by using below code snippet

     flutter_speed_dial: 
        git:
          url: git://github.com/darioielardi/flutter_speed_dial.git
          ref: 4.0.0-dev.1
    

    It is currently in beta but will sure be in stable version.

    Source code(tar.gz)
    Source code(zip)
  • 3.0.5(Mar 12, 2021)

    Thanks to @Amir-P, this release comes with improved closing animation of speed dial and two new parameters namely activeBackgroundColor and activeForegroundColor.

    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-nullsafety.1(Mar 6, 2021)

  • 2.3.5(Mar 6, 2021)

    Thanks to @lks-nbg, this release comes with various improvement related to speedDial and its childrens with also the improvement of openCloseDial functionality, full Changelog can be viewed here.

    Source code(tar.gz)
    Source code(zip)
  • 3.0.0-nullsafety(Mar 4, 2021)

Owner
Dario Ielardi
Fullstack Web & Mobile Developer / Traveler
Dario Ielardi
A Very Flexible Widget that can Implement Material Sheets on all Directions, both modal and persistent, and consequently a Material Navigation Drawer

Flutter_MaterialSheetAndNavigationDrawer If this project helped you reduce developement time or you just want to help me continue making useful tools

Bryan Cancel 30 Dec 4, 2021
Rotate Dial Lock

Rotary dial Locker Dependencies : How it works Most magic handle by GuesterDetector. onPanEnd onPanDown onPanUpdate SpringHouse, 1st we locate where u

Md. Yeasin Sheikh 10 Dec 21, 2022
An android app that can automatically dial a phone number.

AutoCallScheduler An android app that can automatically dial a phone number within a given scheduled of time. Basically it's a test base app of google

Rezwan 24 Dec 4, 2022
Material io ext - A collection of extensions for creating widgets following material.io guidelines

material_io_ext It is a collection of extensions for creating widgets following

BetterX.io 3 Jan 28, 2022
First Open Source Flutter based material design music player with audio plugin to play online music

Flutter Music App First Open Source Flutter based dribbblel Design Music Player. logo free design http://www.freeuid.com/category/free material icons

佩奇的弟弟乔治 380 Jan 4, 2023
Emanuel Braz 27 Dec 22, 2022
Flutter Events App Ui Challenge Speed Code

Flutter Events app made with Flutter, Hosted on Codemagic. Don't forget to star ⭐ the repo it motivates me to share more open source Design Credits Uv

Sanskar Tiwari 402 Dec 29, 2022
Flutter Ui Challenge Speed Code

Live Demo : http://bit.ly/flutterecomapp Design Credits : https://gumroad.com/l/kamartaj Youtube Video : https://youtu.be/OQ-6Zo0vbAk Created & Mainta

Sanskar Tiwari 65 Aug 15, 2022
Speed Share is a highly available file sharing terminal on LAN(local area network) developed by flutter framework.

速享 Language: 中文简体 | English 这是一款完全基于局域网的文件互传终端,速享不使用任何服务器,不使用您的移动流量,不收集任何用户数据,完全的点对点传输。 可以快速共享文本消息,图片或其他文件,文件夹。 适用于局域网中的文件互传,解决 QQ,微信等上传文件会经过服务器的问题,或者

null 477 Dec 31, 2022
Doctor booking app - Flutter Ui Challenge Speed Code

Installation flutter pub get Usage flutter run Live Demo : Flutter Doctor Booking App Web Demo Try Android APK : Download From Google Drive Dotor Bo

Sanskar Tiwari 521 Jan 3, 2023
A mobile game using Flutter to test your reaction speed in various ways

FLX Test your Reflexes! A simple mobile game built with Flutter, Provider and BLoC pattern Key Features Three different play modes! Visual mode: tap w

null 24 May 11, 2021
A super effective dart library delivering performance & ensuring greater build speed.

A super effective Dart and Flutter library for delivering performante app ?? & ensuring greater build speed ?? . The package has some cook utilizes wh

Rexford Asamoah 2 Nov 22, 2021
Speed Coded on Youtube

Installation flutter pub get Usage flutter run Live Demo : Flutter Book App Web Demo Try Android APK : Download From Google Drive Book App UI made w

Sanskar Tiwari 276 Dec 2, 2022
Gif image widget help to controll gif progress,speed,repeat frames

We should know that in order to achieve Gif in flutter, we can use Image, but we have no way to manipulate Gif, for example: change its speed, control it has been playing in a frame, in which frame range loop. These problems can be solved by this widget,it also help you contain gif cache,avoid load frame every time.

Samuel Annin Yeboah 13 Dec 9, 2022
Flutter Local Notifications - Learn how to implement local notifications into both Android and iOS using flutter_local_notifications plugin.

Flutter Local Notifications Example Flutter Local Notifications - Learn how to implement local notifications into both Android and iOS using flutter_l

Sandip Pramanik 12 Nov 29, 2022
Flutter plugin to implement a Boom Menu, with icons, title, subtitle, animated FAB Icons and hide on scrolling.

Flutter Boom Menu Usage The BoomMenu widget is built to be placed in the Scaffold.floatingActionButton argument, replacing the FloatingActionButton wi

Mohanraj 88 Aug 1, 2022
Plugin to implement APNS push notifications on iOS and Firebase on Android.

apns Plugin to implement APNS push notifications on iOS and Firebase on Android. Why this plugin was made? Currently, the only available push notifica

null 0 May 14, 2022
The Material Design Icons Icon pack available as set of Flutter Icons.

material_design_icons_flutter The Material Design Icons Icon pack available as set of Flutter Icons. Based on Material Design Icons 6.5.95. See a web

ziofat 147 Oct 26, 2022
A Simple but elegant Calculator app made with Flutter using Google's Material Design with Currency (Exchange Rate) and Unit Converter.

Calculator A Simple but elegant Calculator app made with Flutter using Google's Material Design with Currency (Exchange Rate) and Unit Converter. Down

Hemant Rajput 15 Dec 7, 2022