Custom bottom sheet widget, that can resize by drag and then scroll.

Overview

Bottom Sheet

Build Status Coverage Status Pub Version Pub Likes Pub popularity Flutter Platform

This package is part of the SurfGear toolkit made by Surf.

About

Custom bottom sheet widget that can be resized in response to drag gestures and then scrolled.

Description

Main classes:

  1. FlexibleBottomSheet
  2. BottomSheetRoute and showing methods

Flexible and scrollable bottom sheet.

All you have to do is call showFlexibleBottomSheet() and you'll get a popup that looks like a modal bottom sheet and can be resized by dragging it up and down and scrolled when expanded.

There are 2 types of BottomSheets:

  1. BottomSheet
  2. StickyBottomSheet

Example

Simple BottomSheet

To show bottomSheet, use :

showFlexibleBottomSheet(
  minHeight: 0,
  initHeight: 0.5,
  maxHeight: 1,
  context: context,
  builder: _buildBottomSheet,
  anchors: [0, 0.5, 1],
);

Widget _buildBottomSheet(
    BuildContext context,
    ScrollController scrollController,
    double bottomSheetOffset,
  ) {
    return SafeArea(
      child: Material(
        child: Container(
          child: ListView(
            ...
          ),
        ),
      ),
    );
  }

Sticky BottomSheet

To show sticky BottomSheet, use:
You have to return SliverChildListDelegate from builder !!!

showStickyFlexibleBottomSheet(
  minHeight: 0,
  initHeight: 0.5,
  maxHeight: 1,
  headerHeight: 200,
  context: context,
  backgroundColor: Colors.white,
  headerBuilder: (BuildContext context, double offset) {
    return Container(
      ...
    );
  },
  builder: (BuildContext context, double offset) {
    return SliverChildListDelegate(
      <Widget>[...],
    );
  },
  anchors: [0, 0.5, 1],
);

Installation

Add bottom_sheet to your pubspec.yaml file:

dependencies:
  bottom_sheet: $currentVersion$

At this moment, the current version of bottom_sheet is bottom_sheet version.

Changelog

All notable changes to this project will be documented in this file.

Issues

To report your issues, submit them directly in the Issues section.

Contribute

If you would like to contribute to the package (e.g. by improving the documentation, fixing a bug or adding a cool new feature), please read our contribution guide first and send us your pull request.

Your PRs are always welcome.

How to reach us

Please feel free to ask any questions about this package. Join our community chat on Telegram. We speak English and Russian.

Telegram

License

Apache License, Version 2.0

Comments
  • Error with showFlexibleBottomSheet - DraggableScrollableController is not attached to a sheet

    Error with showFlexibleBottomSheet - DraggableScrollableController is not attached to a sheet

    I'm getting this error all of a sudden after upgrading to the latest version:

    The following assertion was thrown building LayoutBuilder:
    DraggableScrollableController is not attached to a sheet. A DraggableScrollableController must be used in a DraggableScrollableSheet before any of its methods are called.
    'package:flutter/src/widgets/draggable_scrollable_sheet.dart':
    package:flutter/โ€ฆ/widgets/draggable_scrollable_sheet.dart:1
    Failed assertion: line 170 pos 7: 'isAttached'
    

    I tried a bunch of debug steps, looked into the code, doublechecked usage of showFlexibleBottomSheet, checked all issues, and can't figure it out. It was working fine before, I'd show my code, but it's basically the same as what you show in the examples. Any suggestions?

    bug new issues 
    opened by Skquark 10
  • Feature to change default animation bottom sheet duration

    Feature to change default animation bottom sheet duration

    Hi, surf studio team, Thanks for this great package. I would like to request a feature to change the default bottom sheet duration which is 500 milliseconds. The animation duration of opening and closing is too slow right now. When it is opening or closing if the user taps somewhere it pops the current page. The reason is duration time.

    enhancement P3 
    opened by Ruslanbek0809 7
  • [BUG] Scrollable area does not expand or collapse on desktop

    [BUG] Scrollable area does not expand or collapse on desktop

    Describe the bug

    When I try to use the flexible bottom sheet, the bottom sheet scrolls, but doesn't change its size based on scroll position as shown in the documentation. The bottom sheet's size stays at the "initHeight".

    The test code I'm using:

    showFlexibleBottomSheet<void>(
                  minHeight: 0.25,
                  initHeight: 0.4,
                  maxHeight: 0.75,
                  context: context,
                  builder: (context, controller, bottomSheetOffset) => SafeArea(
                    child: Material(
                      child: ListView(
                        controller: controller,
                        children: [
                          Text(
                            "A",
                            style: Theme.of(context).textTheme.headline1,
                          ),
                          Text("A", style: Theme.of(context).textTheme.headline1),
                          Text("A", style: Theme.of(context).textTheme.headline1),
                          Text("A", style: Theme.of(context).textTheme.headline1),
                          Text("A", style: Theme.of(context).textTheme.headline1)
                        ],
                      ),
                    ),
                  ),
                  anchors: [0.25, 0.4, 0.75],
                ))
    

    Steps to Reproduce

    1. Show the sheet using the code above.
    2. Scroll inside the sheet.

    What is the expected behavior?

    I would expect the sheet to both scroll and resize to its maxHeight.

    (As it is, it scrolls, but doesn't change in size.)

    Additional context

    • What package and OS are affected by this issue? Did this work in previous versions of a package? I'm using v 2.1.0 and building for macOS.
    bug P3 depends on other side 
    opened by 12people 5
  • [BUG] LateInitializationError when open bottom_sheet

    [BUG] LateInitializationError when open bottom_sheet

    Describe the bug

    LateInitializationError is thrown when bottomsheet tries to open with the keyboard up. This is due to the inverse dependency on the deeper object that initializes the controller. Looks like a big task to redesign into a structure with cleaner relations.

    Steps to Reproduce

    Open bottomsheet when keyboard allready opened.

    What is the expected behavior?

    Show bottomsheet without exception.

    Additional context

    log `I/flutter ( 9791): ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ I/flutter ( 9791): ๐Ÿšจ๐Ÿšจ๐Ÿšจ Zone catched exception! ๐Ÿšจ๐Ÿšจ๐Ÿšจ I/flutter ( 9791): ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ I/flutter ( 9791): ๐Ÿ”ฅ LateInitializationError: Field '_controller@214261582' has not been initialized. I/flutter ( 9791): ๐Ÿ”ฅ I/flutter ( 9791): ๐Ÿ”ฅ #0 _FlexibleBottomSheetState._controller (package:bottom_sheet/src/flexible_bottom_sheet.dart) I/flutter ( 9791): ๐Ÿ”ฅ #1 _FlexibleBottomSheetState._animateToNextAnchor (package:bottom_sheet/src/flexible_bottom_sheet.dart:399:9) I/flutter ( 9791): ๐Ÿ”ฅ #2 _FlexibleBottomSheetState._keyboardOpened (package:bottom_sheet/src/flexible_bottom_sheet.dart:267:5) I/flutter ( 9791): ๐Ÿ”ฅ #3 _FlexibleBottomSheetState._checkKeyboard (package:bottom_sheet/src/flexible_bottom_sheet.dart:252:9) I/flutter ( 9791): ๐Ÿ”ฅ #4 _FlexibleBottomSheetState.build (package:bottom_sheet/src/flexible_bottom_sheet.dart:168:5) I/flutter ( 9791): ๐Ÿ”ฅ #5 StatefulElement.build (package:flutter/src/widgets/framework.dart:4782:27) I/flutter ( 9791): ๐Ÿ”ฅ #6 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4665:15) I/flutter ( 9791): ๐Ÿ”ฅ #7 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #8 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #9 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #10 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #11 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #12 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #13 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #14 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #15 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #16 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #17 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #18 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #19 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #20 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #21 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #22 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #23 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #24 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #25 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #26 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #27 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #28 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #29 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #30 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #31 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #32 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #33 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #34 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #35 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #36 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #37 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #38 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #39 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #40 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #41 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #42 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #43 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #44 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #45 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #46 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #47 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #48 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #49 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #50 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #51 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #52 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #53 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #54 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #55 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #56 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #57 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #58 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #59 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #60 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #61 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #62 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6195:14) I/flutter ( 9791): ๐Ÿ”ฅ #63 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #64 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #65 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6195:14) I/flutter ( 9791): ๐Ÿ”ฅ #66 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #67 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #69 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #70 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #71 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #72 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #73 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #74 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #75 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #76 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6195:14) I/flutter ( 9791): ๐Ÿ”ฅ #77 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #78 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #79 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #80 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #81 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #82 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #83 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #84 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #85 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #86 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #87 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #88 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #89 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #90 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #91 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #92 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #93 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #94 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #95 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6195:14) I/flutter ( 9791): ๐Ÿ”ฅ #96 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #97 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #98 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6195:14) I/flutter ( 9791): ๐Ÿ”ฅ #99 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #100 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #101 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #102 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #103 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #104 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #105 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #106 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #107 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6195:14) I/flutter ( 9791): ๐Ÿ”ฅ #108 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #109 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #110 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #111 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #112 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #113 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #114 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #115 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #116 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #117 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #118 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #119 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #120 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #121 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #122 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #123 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #124 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #125 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #126 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #127 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #128 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #129 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #130 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #131 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #132 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #133 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #134 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #135 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #136 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #137 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #138 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #139 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #140 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #141 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #142 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #143 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #144 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #145 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #146 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #147 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #148 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #149 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #150 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6195:14) I/flutter ( 9791): ๐Ÿ”ฅ #151 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #152 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #153 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #154 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #155 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #156 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #157 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #158 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #159 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #160 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #161 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #162 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #163 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #164 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #165 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #166 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #167 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #168 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #169 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #170 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #171 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #172 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #173 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #174 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #175 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #176 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #177 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #178 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #179 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #180 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #181 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #182 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #183 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #184 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #185 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) I/flutter ( 9791): ๐Ÿ”ฅ #186 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #187 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #188 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18)

    I/flutter ( 9791): ๐Ÿ”ฅ #189 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6195:14) Exception caught by widgets library The following LateError was thrown building FlexibleBottomSheet(dirty, dependencies: [MediaQuery, _EffectiveTickerMode], state: _FlexibleBottomSheetState#0d422(ticker inactive)): LateInitializationError: Field '_controller@214261582' has not been initialized.

    The relevant error-causing widget wasI/flutter ( 9791): ๐Ÿ”ฅ #190 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #191 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) : I/flutter ( 9791): ๐Ÿ”ฅ #192 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #193 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #194 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #195 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #196 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #197 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #198 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #199 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #200 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) I/flutter ( 9791): ๐Ÿ”ฅ #201 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) I/flutter ( 9791): ๐Ÿ”ฅ #202 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) I/flutter ( 9791): ๐Ÿ”ฅ #203 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #204 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #205 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) CupertinoApp CupertinoApp:file:///Users/ayankov/IdeaProjects/ozon-pvz/lib/main.dart:147:22 When the exception was thrown, this was the stack: I/flutter ( 9791): ๐Ÿ”ฅ #206 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #207 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) #0 _FlexibleBottomSheetState._controller (package:bottom_sheet/src/flexible_bottom_sheet.dart) I/flutter ( 9791): ๐Ÿ”ฅ #208 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) #1 _FlexibleBottomSheetState._preScroll (package:bottom_sheet/src/flexible_bottom_sheet.dart:280:9) #2 _FlexibleBottomSheetState._keyboardOpened (package:bottom_sheet/src/flexible_bottom_sheet.dart:269:7) I/flutter ( 9791): ๐Ÿ”ฅ #209 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) #3 _FlexibleBottomSheetState._checkKeyboard (package:bottom_sheet/src/flexible_bottom_sheet.dart:252:9) I/flutter ( 9791): ๐Ÿ”ฅ #210 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) #4 _FlexibleBottomSheetState.build (package:bottom_sheet/src/flexible_bottom_sheet.dart:168:5) #5 StatefulElement.build (package:flutter/src/widgets/framework.dart:4782:27) #6 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4665:15) #7 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) #8 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) #9 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4643:5) #10 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4831:11) #11 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4638:5) ... Normal element mounting (199 frames) #210 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3673:14) #211 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6333:36) #212 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) #213 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5758:32) #214 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6356:17) #215 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #216 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) #217 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) #218 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) #219 StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5) #220 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #221 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) #222 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) #223 ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5) #224 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #225 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) #226 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) #227 ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5) #228 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:181:11) #229 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #230 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14) #231 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #232 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) #233 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) #234 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) #235 StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5) #236 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #237 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14) #238 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #239 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14) #240 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #241 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) #242 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) #243 ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5) #244 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) #245 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) #246 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) #247 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) #248 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2620:33) #249 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:877:21) #250 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:330:5) #251 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15) #252 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9) #253 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5) #257 _invoke (dart:ui/hooks.dart:164:10) #258 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:262:5) #259 _drawFrame (dart:ui/hooks.dart:127:31) (elided 3 frames from dart:async)

    I/flutter ( 9791): ๐Ÿ”ฅ #211 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6333:36) I/flutter ( 9791): ๐Ÿ”ฅ #212 Element.updateChild (package:flutter/src/widgets/framework.dart:3425:18) I/flutter ( 9791): ๐Ÿ”ฅ #213 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5758:32) I/flutter ( 9791): ๐Ÿ”ฅ #214 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6356:17) I/flutter ( 9791): ๐Ÿ”ฅ #215 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #216 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #217 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #218 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #219 StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5) I/flutter ( 9791): ๐Ÿ”ฅ #220 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #221 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #222 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #223 ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5) I/flutter ( 9791): ๐Ÿ”ฅ #224 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #225 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #226 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #227 ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5) I/flutter ( 9791): ๐Ÿ”ฅ #228 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:181:11) I/flutter ( 9791): ๐Ÿ”ฅ #229 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #230 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14) I/flutter ( 9791): ๐Ÿ”ฅ #231 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #232 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #233 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #234 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #235 StatefulElement.update (package:flutter/src/widgets/framework.dart:4872:5) I/flutter ( 9791): ๐Ÿ”ฅ #236 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #237 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14) I/flutter ( 9791): ๐Ÿ”ฅ #238 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #239 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6202:14) I/flutter ( 9791): ๐Ÿ”ฅ #240 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #241 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #242 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #243 ProxyElement.update (package:flutter/src/widgets/framework.dart:5020:5) I/flutter ( 9791): ๐Ÿ”ฅ #244 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15) I/flutter ( 9791): ๐Ÿ”ฅ #245 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4690:16) I/flutter ( 9791): ๐Ÿ”ฅ #246 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4840:11) I/flutter ( 9791): ๐Ÿ”ฅ #247 Element.rebuild (package:flutter/src/widgets/framework.dart:4355:5) I/flutter ( 9791): ๐Ÿ”ฅ #248 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2620:33) I/flutter ( 9791): ๐Ÿ”ฅ #249 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:877:21) I/flutter ( 9791): ๐Ÿ”ฅ #250 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:330:5) I/flutter ( 9791): ๐Ÿ”ฅ #251 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15) I/flutter ( 9791): ๐Ÿ”ฅ #252 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9) I/flutter ( 9791): ๐Ÿ”ฅ #253 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5) I/flutter ( 9791): ๐Ÿ”ฅ #254 _rootRun (dart:async/zone.dart:1428:13) I/flutter ( 9791): ๐Ÿ”ฅ #255 _CustomZone.run (dart:async/zone.dart:1328:19) I/flutter ( 9791): ๐Ÿ”ฅ #256 _CustomZone.runGuarded (dart:async/zone.dart:1236:7) I/flutter ( 9791): ๐Ÿ”ฅ #257 _invoke (dart:ui/hooks.dart:164:10) I/flutter ( 9791): ๐Ÿ”ฅ #258 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:262:5) I/flutter ( 9791): ๐Ÿ”ฅ #259 _drawFrame (dart:ui/hooks.dart:127:31) I/flutter ( 9791): ๐Ÿ”ฅ I/flutter ( 9791): ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ`

    bug 
    opened by MbIXjkee 4
  • We need to add the safeArea feature.

    We need to add the safeArea feature.

    What is the new or updated feature that you are suggesting?

    We need to add the safeArea feature. Now with anchor 1 or maximum height 1, the bottom sheet calculates the height based on the screen size, without regard to the status bar.

    Simulator Screen Shot - iPhone 13 Pro - 2022-03-22 at 15 38 46

    Need to add SafeArea feature.

    enhancement P2 
    opened by KristinaZoteva 3
  • Is there any way to to set maxHeight depending on content height?

    Is there any way to to set maxHeight depending on content height?

    What is the new or updated feature that you are suggesting?

    Opportunity to set maxHeight automatically of FlexibleBottomSheet depending on content height.

    Why should this feature be included?

    Now it is very complicted to calculate ratio of widget height to screen height.

    Thanks.

    enhancement new issues 
    opened by bonsoirelliot 2
  • Bottom Sheet not draggable

    Bottom Sheet not draggable

    I have a component that I want to show and enable dragging like shown in the documentation. But my widget is not draggable. The only things that I can do is to interact with the component and collapse the component by touching an area outside the widget.

    AppBar(
          elevation: 0.375,
          leading: Transform.translate(
            offset: const Offset(0, 10),
            child: IconButton(
              onPressed: () => Scaffold.of(context).openDrawer(),
              icon: const Icon(Icons.menu),
            ),
          ),
          actions: <Widget>[
            Transform.translate(
              offset: const Offset(0, 10),
              child: IconButton(
                onPressed: () {
                  showFlexibleBottomSheet(
                    minHeight: 0,
                    initHeight: 0.5,
                    maxHeight: 1,
                    anchors: [0, 0.5, 1],
                    context: context,
                    builder: (BuildContext context,
                        ScrollController scrollController,
                        double bottomSheetOffset) {
                      return const SafeArea(
                        child: Material(
                          child: NotificationsWidget(),
                          elevation: 0.4,
                          borderRadius: BorderRadius.only(
                            topLeft: Radius.circular(40),
                            topRight: Radius.circular(40),
                          ),
                        ),
                      );
                    },
                  );
                },
                color: Color(CustomColors.raw['primaryText']!),
                icon: const Icon(Icons.notifications_none_outlined),
              ),
            )
          ],
        );
    

    My custom widget is here :

    // Some code omitted for brevity
    Widget build(BuildContext context) {
        return Column(
          children: [
            Container(
              child: const Center(
                child: Text('...'),
              ),
              margin: const EdgeInsets.only(top: 10),
            ),
            Container(
              child: const Center(
                child: Text('...'),
              ),
              margin: const EdgeInsets.only(top: 10, bottom: 35),
            ),
            Flexible(
              child: FutureBuilder<List<notification.Notification>>(
                future: _notificationsFuture,
                builder: (ctx, snapshot) {
                  if (snapshot.hasData) {
                    final notifications = snapshot.data!;
                    return ListView.separated(......);
                  } else if (snapshot.hasError) {
                    return const Center(
                      child: Text('...'),
                    );
                  } else {
                    return Center(
                      child: CircularProgressIndicator(),
                    );
                  }
                },
              ),
            ),
          ],
        );
      }
    

    Installed version : 2.1.0 Flutter version : 2.10.1

    Edit : I have the same result with the example code

    opened by Ola-jed 2
  • [BUG] failure during golden tests

    [BUG] failure during golden tests

    Source code

        showFlexibleBottomSheet<void>(
          minHeight: 0,
          initHeight: 0.5,
          maxHeight: 0.5,
          context: context,
          builder: (context, _, __) {
            return Container(color: Colors.blue);
          },
          anchors: [0, 0.5],
        );
    

    Entire source code could be seen in repo.

    How to reproduce

    Run flutter test.

    Failure cause

    Seems like showFlexibleBottomSheet's builer requires scrollable Widget with controller passed into constructor.

    Suggestions

    1. Document such case.
    2. Allow to pass non-scrollable widget (w/o ScrollController) into showFlexibleBottomSheet's builer.

    Stack trace

    โ•โ•โ•ก EXCEPTION CAUGHT BY SCHEDULER LIBRARY โ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
    The following assertion was thrown during a scheduler callback:
    ScrollController not attached to any scroll views.
    'package:flutter/src/widgets/scroll_controller.dart':
    Failed assertion: line 107 pos 12: '_positions.isNotEmpty'
    
    Either the assertion indicates an error in the framework itself, or we should provide substantially
    more information in this error message to help you determine and fix the underlying cause.
    In either case, please report this assertion by filing a bug on GitHub:
      https://github.com/flutter/flutter/issues/new?template=2_bug.md
    
    When the exception was thrown, this was the stack:
    #2      ScrollController.position (package:flutter/src/widgets/scroll_controller.dart:107:12)
    #3      _DraggableScrollableSheetScrollController.position (package:flutter/src/widgets/draggable_scrollable_sheet.dart:725:13)
    #4      _DraggableScrollableSheetState._replaceExtent.<anonymous closure> (package:flutter/src/widgets/draggable_scrollable_sheet.dart:656:27)
    #5      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
    #6      SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1089:9)
    #7      AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding.dart:995:9)
    #10     TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
    #11     AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:982:27)
    #12     WidgetTester.pump.<anonymous closure> (package:flutter_test/src/widget_tester.dart:608:53)
    #15     TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
    #16     WidgetTester.pump (package:flutter_test/src/widget_tester.dart:608:27)
    #17     _twoPumps (package:golden_toolkit/src/multi_screen_golden.dart:18:16)
    #18     multiScreenGolden.<anonymous closure> (package:golden_toolkit/src/multi_screen_golden.dart:71:30)
    #19     multiScreenGolden.<anonymous closure> (package:golden_toolkit/src/multi_screen_golden.dart:66:13)
    #20     WidgetFlutterBindingExtensions.runWithDeviceOverrides (package:golden_toolkit/src/widget_tester_extensions.dart:32:17)
    <asynchronous suspension>
    <asynchronous suspension>
    (elided 7 frames from class _AssertionError, dart:async, and package:stack_trace)
    โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
    โ•โ•โ•ก EXCEPTION CAUGHT BY SCHEDULER LIBRARY โ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
    The following assertion was thrown during a scheduler callback:
    ScrollController not attached to any scroll views.
    'package:flutter/src/widgets/scroll_controller.dart':
    Failed assertion: line 107 pos 12: '_positions.isNotEmpty'
    
    Either the assertion indicates an error in the framework itself, or we should provide substantially
    more information in this error message to help you determine and fix the underlying cause.
    In either case, please report this assertion by filing a bug on GitHub:
      https://github.com/flutter/flutter/issues/new?template=2_bug.md
    
    When the exception was thrown, this was the stack:
    #2      ScrollController.position (package:flutter/src/widgets/scroll_controller.dart:107:12)
    #3      _DraggableScrollableSheetScrollController.position (package:flutter/src/widgets/draggable_scrollable_sheet.dart:725:13)
    #4      _DraggableScrollableSheetState._replaceExtent.<anonymous closure> (package:flutter/src/widgets/draggable_scrollable_sheet.dart:656:27)
    #5      SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
    #6      SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1089:9)
    #7      AutomatedTestWidgetsFlutterBinding.pump.<anonymous closure> (package:flutter_test/src/binding.dart:995:9)
    #10     TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
    #11     AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:982:27)
    #12     WidgetTester.pump.<anonymous closure> (package:flutter_test/src/widget_tester.dart:608:53)
    #15     TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:71:41)
    #16     WidgetTester.pump (package:flutter_test/src/widget_tester.dart:608:27)
    #17     _twoPumps (package:golden_toolkit/src/multi_screen_golden.dart:18:16)
    #18     multiScreenGolden.<anonymous closure> (package:golden_toolkit/src/multi_screen_golden.dart:71:30)
    #19     multiScreenGolden.<anonymous closure> (package:golden_toolkit/src/multi_screen_golden.dart:66:13)
    #20     WidgetFlutterBindingExtensions.runWithDeviceOverrides (package:golden_toolkit/src/widget_tester_extensions.dart:32:17)
    <asynchronous suspension>
    <asynchronous suspension>
    (elided 7 frames from class _AssertionError, dart:async, and package:stack_trace)
    โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
    โ•โ•โ•ก EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK โ•žโ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
    The following message was thrown:
    Multiple exceptions (2) were detected during the running of the current test, and at least one was
    unexpected.
    โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
    00:04 +1 -1: MyHomePage golden tests shows bottom sheet [E]                                  
      Test failed. See exception logs above.
      The test description was: shows bottom sheet
      
    00:04 +1 -1: Some tests failed.
    
    documentation P2 
    opened by grafovdenis 2
  • Make the barrier transparent

    Make the barrier transparent

    What is the new or updated feature that you are suggesting?

    Can the barrier which is shown be made configurable eg to force it to be transparent in certain cases or of other colors

    Why should this feature be included?

    Gives added flexibility which is there in the bottomsheet widget.

    enhancement P3 
    opened by the100rabh 2
  • [BUG] Keyboard hiding animation

    [BUG] Keyboard hiding animation

    Describe the bug

    Hello! I have a TextField inside FlexibleBottomSheet. When the keyboard is hiding there is a hole in the bottom of FlexibleBottomSheet for some period of time. Looks like the animation of FlexibleBottomSheet doesn't keep up with the keyboard animation.

    `showFlexibleBottomSheet<void>(
                        minHeight: 0,
                        initHeight: 0.5,
                        maxHeight: 0.6,
                        context: context,
                        builder: (context, controller, i) {
                          return Scaffold(
                            resizeToAvoidBottomInset: false,
                            body: CustomScrollView(
                              controller: controller,
                              slivers: [
                                SliverList(
                                  delegate: SliverChildListDelegate(
                                    [
                                      Text(
                                        'text',
                                      ),
                                      TextField(),
                                    ],
                                  ),
                                ),
                              ],
                            ),
                          );
                        });`
    

    What is the expected behavior?

    Hide keyboard without hole in bottomSheet. If paste TextField inside ModalBottomSheet, keyboard hiding animation is working right.

    Additional context

    • On IOS keyboard hiding animation works fine.

    • I hope gifs are supported

    • alt text

    • flutter doctor -v [โˆš] Flutter (Channel stable, 2.5.3, on Microsoft Windows [Version 10.0.19043.1415], locale ru-RU) โ€ข Flutter version 2.5.3 at C:\flutter\flutter โ€ข Upstream repository https://github.com/flutter/flutter โ€ข Framework revision 18116933e7 (2 months ago), 2021-10-15 10:46:35 -0700 โ€ข Engine revision d3ea636dc5 โ€ข Dart version 2.14.4

    [โˆš] Android toolchain - develop for Android devices (Android SDK version 31.0.0) โ€ข Android SDK at C:\sdk โ€ข Platform android-31, build-tools 31.0.0 โ€ข 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 2020.3) โ€ข 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.63.2) โ€ข VS Code at C:\Users\ะะธะบะธั‚ะฐ\AppData\Local\Programs\Microsoft VS Code โ€ข Flutter extension version 3.29.0

    [โˆš] Connected device (3 available) โ€ข sdk gphone x86 (mobile) โ€ข emulator-5554 โ€ข android-x86 โ€ข Android 11 (API 30) (emulator) โ€ข Chrome (web) โ€ข chrome โ€ข web-javascript โ€ข Google Chrome 96.0.4664.110 โ€ข Edge (web) โ€ข edge โ€ข web-javascript โ€ข Microsoft Edge 94.0.992.38

    โ€ข No issues found!

    bug P2 
    opened by bonsoirelliot 2
  • How to implement localization for the bottomsheet

    How to implement localization for the bottomsheet

    Hi, I need to implement the app using Japanese localization. So the contents in bottom sheet need to be shown in Japanese so pls help me what should I do. If this is not possible right now, may I know how shall I do, to stop the bottom sheet from showing while sms comes

    question 
    opened by AGBharanidharan 2
  • [BUG] BottomSheet pop twice.

    [BUG] BottomSheet pop twice.

    Describe

    First of all, Thanks for the package. Sometimes bottomSheet will pop twice.

    Steps to Reproduce

    Sliding the bottomSheet to the bottom and then tapping the background will pop twice

    https://user-images.githubusercontent.com/108989782/203687145-f2f60b16-594b-4148-b95d-6ee76c2125e6.mp4

    bug new issues 
    opened by Drown0315 0
  • [BUG] Can't open on screen keyboard when showFlexibleBottomSheet based on content height is used

    [BUG] Can't open on screen keyboard when showFlexibleBottomSheet based on content height is used

    Thanks for the package. I can't open the on-screen keyboard when showFlexibleBottomSheet based on content height is used. Can you check and let me know if you get this issue as well?

    bug new issues 
    opened by Ruslanbek0809 0
  • Fix: SafeArea in Ios does not work as expected

    Fix: SafeArea in Ios does not work as expected

    When isSafeArea is true.

        showFlexibleBottomSheet<void>(
          minHeight: 0,
          initHeight: 0.5,
          maxHeight: 1,
          context: context,
          isSafeArea: true,
          bottomSheetColor: Colors.white,
          builder: (context, controller, offset) {
            return _BottomSheet(
              scrollController: controller,
              bottomSheetOffset: offset,
            );
          },
          anchors: [0, 0.5, 1],
        );
    

    The area color of the home indicator is transparent, I think it didn't work as expected.

    screenshot

    new pull request 
    opened by Drown0315 0
  • [BUG] SnackBar over bottom sheet

    [BUG] SnackBar over bottom sheet

    Hello. First of all, I like a lot this library. Thanks for your work.

    I'm have one issue regarding SnackBars and showFlexibleBottomSheet. When there's a SnackBar active and you open a bottom sheet, the SnackBar places on top of the bottom sheet, instead of being behind it (as it happens with the stock showModalBottomSheet). On the screenshots below, the first one is a bottom sheet created with showFlexibleBottomSheet, and the second one is created with stock showModalBottomSheet. In both cases, there's a SnackBar active.

    Screenshot_1665505738

    Screenshot_1665505746

          showFlexibleBottomSheet(
            minHeight: 0.6,
            initHeight: 0.6,
            maxHeight: (filter.enabled == true ? 774 : 755)/MediaQuery.of(context).size.height,
            isCollapsible: true,
            duration: const Duration(milliseconds: 250),
            anchors: [(filter.enabled == true ? 774 : 755)/MediaQuery.of(context).size.height],
            context: context, 
            builder: (ctx, controller, offset) => ListDetailsModal(
              scrollController: controller,
              list: filter, 
              type: widget.type,
              onDelete: (Filter list, String type) {// some stuff //}, 
              edit: (type) => {// some stuff //},
              onEnableDisable: () => {// some stuff //},
            ),
            bottomSheetColor: Colors.transparent
          );
    

    Steps to Reproduce

    1. Show a SnackBar
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(
        content: "I'm a snackbar",
      )
    );
    
    1. Open a bottom sheet with showFlexibleBottomSheet.

    What is the expected behavior?

    The SnackBar should be behind the opened bottom sheet as it is with the stock showModalBottomSheet.

    Additional context

    • I'm using v3.1.2.
    [โœ“] Flutter (Channel stable, 3.3.4, on macOS 12.6 21G115 darwin-arm, locale es-ES)
        โ€ข Flutter version 3.3.4 on channel stable at /Users/juan/flutter
        โ€ข Upstream repository https://github.com/flutter/flutter.git
        โ€ข Framework revision eb6d86ee27 (6 days ago), 2022-10-04 22:31:45 -0700
        โ€ข Engine revision c08d7d5efc
        โ€ข Dart version 2.18.2
        โ€ข DevTools version 2.15.0
    
    [โœ“] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
        โ€ข Android SDK at /Users/juan/Library/Android/sdk
        โ€ข Platform android-33, build-tools 31.0.0
        โ€ข ANDROID_HOME = /Users/juan/Library/Android/sdk
        โ€ข Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
        โ€ข Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
        โ€ข All Android licenses accepted.
    
    [โœ“] Xcode - develop for iOS and macOS (Xcode 14.0.1)
        โ€ข Xcode at /Applications/Xcode.app/Contents/Developer
        โ€ข Build 14A400
        โ€ข CocoaPods version 1.11.2
    
    [โœ“] Chrome - develop for the web
        โ€ข Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [โœ“] Android Studio (version 2021.2)
        โ€ข Android Studio at /Applications/Android Studio.app/Contents
        โ€ข 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.12+0-b1504.28-7817840)
    
    [โœ“] VS Code (version 1.72.0)
        โ€ข VS Code at /Applications/Visual Studio Code.app/Contents
        โ€ข Flutter extension version 3.50.0
    
    [โœ“] Connected device (3 available)
        โ€ข sdk gphone64 arm64 (mobile) โ€ข emulator-5554 โ€ข android-arm64  โ€ข Android 13 (API 33) (emulator)
        โ€ข macOS (desktop)             โ€ข macos         โ€ข darwin-arm64   โ€ข macOS 12.6 21G115 darwin-arm
        โ€ข Chrome (web)                โ€ข chrome        โ€ข web-javascript โ€ข Google Chrome 106.0.5249.103
    
    [โœ“] HTTP Host Availability
        โ€ข All required HTTP hosts are available
    
    โ€ข No issues found!
    
    Analyzing adguard_home_manager...                                       
    
       info โ€ข Unused import: 'package:adguard_home_manager/screens/connect/fab.dart' โ€ข lib/config/app_screens.dart:3:8 โ€ข unused_import
       info โ€ข Unused import: 'package:adguard_home_manager/screens/connect/appbar.dart' โ€ข lib/config/app_screens.dart:4:8 โ€ข unused_import
       info โ€ข Unused import: 'package:adguard_home_manager/screens/settings/appbar.dart' โ€ข lib/config/app_screens.dart:10:8 โ€ข unused_import
       info โ€ข 'androidOverscrollIndicator' is deprecated and shouldn't be used. Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. This feature was deprecated after
              v2.13.0-0.0.pre. โ€ข lib/config/theme.dart:79:3 โ€ข deprecated_member_use
       info โ€ข 'androidOverscrollIndicator' is deprecated and shouldn't be used. Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. This feature was deprecated after
              v2.13.0-0.0.pre. โ€ข lib/config/theme.dart:151:3 โ€ข deprecated_member_use
       info โ€ข 'androidOverscrollIndicator' is deprecated and shouldn't be used. Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. This feature was deprecated after
              v2.13.0-0.0.pre. โ€ข lib/config/theme.dart:243:3 โ€ข deprecated_member_use
       info โ€ข 'androidOverscrollIndicator' is deprecated and shouldn't be used. Use ThemeData.useMaterial3 or override ScrollBehavior.buildOverscrollIndicator. This feature was deprecated after
              v2.13.0-0.0.pre. โ€ข lib/config/theme.dart:342:3 โ€ข deprecated_member_use
       info โ€ข Unused import: 'package:intl/intl.dart' โ€ข lib/functions/conversions.dart:1:8 โ€ข unused_import
       info โ€ข Unused import: 'package:adguard_home_manager/models/clients_allowed_blocked.dart' โ€ข lib/screens/clients/fab.dart:13:8 โ€ข unused_import
       info โ€ข Unused import: 'package:adguard_home_manager/functions/format_time.dart' โ€ข lib/screens/logs/logs_filters_modal.dart:13:8 โ€ข unused_import
       info โ€ข The declaration 'selectTime' isn't referenced โ€ข lib/screens/logs/logs_filters_modal.dart:67:10 โ€ข unused_element
    
    11 issues found. (ran in 1.6s)
    
    
    bug new issues 
    opened by JGeek00 0
  • Create a method to constrain the bottom sheet to the current scaffold

    Create a method to constrain the bottom sheet to the current scaffold

    What is the new or updated feature that you are suggesting?

    Create a method to constrain the bottom sheet to the current scaffold much like how a normal call to showBottomSheet() works.

    Why should this feature be included?

    Currently, the showFlexibleBottomSheet() method pushes a new activity on top on the whole navigator

    return Navigator.of(context, rootNavigator: useRootNavigator).push(
        _FlexibleBottomSheetRoute<T>(
          theme: Theme.of(context),
          ...
        ),
      );
    

    instead of the default behavior of showBottomSheet() that calls:

    return Scaffold.of(context).showBottomSheet<T>(
        builder,
        ...
      );
    

    so the resulting bottom sheet goes only on top of the scaffold where it is called.

    Additional context

    This use-case is important for responsive web and desktop builds where there can be more than one scaffold currently on screen, and it is required that a bottomSheet only appear above the current scaffold.

    If there is a way to achieve this currently, please let me know. Much appreciated.

    enhancement new issues 
    opened by alguintu 0
Releases(v3.1.2)
  • v3.1.2(Sep 28, 2022)

    What's Changed

    • chore: added missed trailing commas by @dkrutskikh in https://github.com/surfstudio/flutter-bottom-sheet/pull/58
    • fix: error with currentExtent by @zaharovroman in https://github.com/surfstudio/flutter-bottom-sheet/pull/65
    • feat: add draggableScrollableController by @iAmTosuj in https://github.com/surfstudio/flutter-bottom-sheet/pull/61
    • Update pubspec.yaml by @dshevchenkoo in https://github.com/surfstudio/flutter-bottom-sheet/pull/66
    • Update CHANGELOG.md by @dshevchenkoo in https://github.com/surfstudio/flutter-bottom-sheet/pull/67

    New Contributors

    • @dkrutskikh made their first contribution in https://github.com/surfstudio/flutter-bottom-sheet/pull/58
    • @zaharovroman made their first contribution in https://github.com/surfstudio/flutter-bottom-sheet/pull/65
    • @iAmTosuj made their first contribution in https://github.com/surfstudio/flutter-bottom-sheet/pull/61
    • @dshevchenkoo made their first contribution in https://github.com/surfstudio/flutter-bottom-sheet/pull/66

    Full Changelog: https://github.com/surfstudio/flutter-bottom-sheet/compare/v3.1.1...v3.1.2

    Source code(tar.gz)
    Source code(zip)
  • v3.1.1(May 19, 2022)

    What's Changed

    • Fix: bug after closing the bottom sheet if it was opened with an open keyboard. by @KristinaZoteva in https://github.com/surfstudio/flutter-bottom-sheet/pull/54

    Full Changelog: https://github.com/surfstudio/flutter-bottom-sheet/compare/v3.1.0...v3.1.1

    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(May 17, 2022)

    What's Changed

    • Chore: add github action to monitors the correctness of the issue. by @KristinaZoteva in https://github.com/surfstudio/flutter-bottom-sheet/pull/55
    • Feat: add the ability to set the color of the barrier. by @KristinaZoteva in https://github.com/surfstudio/flutter-bottom-sheet/pull/56

    Full Changelog: https://github.com/surfstudio/flutter-bottom-sheet/compare/v3.0.0...v3.1.0

    Source code(tar.gz)
    Source code(zip)
  • v3.0.0(Apr 26, 2022)

    What's Changed

    • Docs: add information that builder should return a scrollable widget. by @KristinaZoteva in https://github.com/surfstudio/flutter-bottom-sheet/pull/46
    • Feat: add ability set height based on content. by @KristinaZoteva in https://github.com/surfstudio/flutter-bottom-sheet/pull/51
    • Feat: safe area including available https://github.com/surfstudio/flutter-bottom-sheet/issues/41
    • Fixed: https://github.com/surfstudio/flutter-bottom-sheet/issues/49
    • Fixed: https://github.com/surfstudio/flutter-bottom-sheet/issues/48
    • Fixed https://github.com/surfstudio/flutter-bottom-sheet/issues/30

    Full Changelog: https://github.com/surfstudio/flutter-bottom-sheet/compare/v2.1.0...v3.0.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.5(Dec 7, 2021)

  • 1.0.4(Oct 26, 2021)

Owner
Surf
Surf
A widget that allow user resize the widget with drag

Flutter-Resizable-Widget A widget that allow user resize the widget with drag Note: this widget uses Getx Example bandicam.2021-11-11.12-34-41-056.mp4

MohammadAminZamani.afshar 22 Dec 13, 2022
A flutter carousel widget, support infinite scroll, and custom child widget.

carousel_slider A carousel slider widget. Features Infinite scroll Custom child widgets Auto play Supported platforms Flutter Android Flutter iOS Flut

Bart T 1 Nov 25, 2021
Flutter ScrollView Observer - a library of widget that can be used to listen for child widgets those are being displayed in the scroll view

Flutter ScrollView Observer - a library of widget that can be used to listen for child widgets those are being displayed in the scroll view

ๆž—ๆดต้”‹ 67 Jan 6, 2023
A Flutter widget that moves according to a scroll controller.

flutter_parallax A Flutter widget that moves according to a scroll controller. Features Can contain any widget. Configurable parallax scroll direction

Romain Rastel 100 Dec 17, 2021
This package supports drag & drop widgets inside the GridView.builder for multiplatform

This package supports drag & drop widgets inside the GridView.builder for multiplatform. It provides all the properties which are available in Gridview. builder and easy to implement with the few lines of code.

MindInventory 68 Dec 29, 2022
Displays a scrollable timeline with custom child widgets and custom icons.

Flutter Timeline Widget Displays a scrollable timeline with custom child widgets and custom icons. Installation In your pubspec.yaml file within your

Furkan Tektas 375 Nov 20, 2022
NestedScrollView: extended nested scroll view to fix following issues.

NestedScrollView: extended nested scroll view to fix following issues.

FlutterCandies 457 Jan 4, 2023
Custom-Position-Popup - Custom Position Popup For Flutter

Custom-Position-Popup before clone the GitHub repository please give a star on t

Blackshadow Software Ltd 11 Oct 17, 2022
This repo is for anything that can be reusable in flutter like custom widgets ๐ŸŸฅ, animations ๐ŸŒŸand more

Flutter Shortcuts This repo is for anything that can be reusable in flutter like custom widgets ?? , animations ?? and more. How to Use Just get the f

Abdelrahman Mostafa Elmarakby 91 Dec 3, 2022
Widget, that can make any static located widget hidable

Installing See the official installing guidline from hidable/install Usage & Overview To start using Hidable widget, we have to create a ScrollControl

Anon 18 Dec 16, 2022
A widget lib that the widget in this lib can react to flutter ScrollController's offset

Language: English | ไธญๆ–‡็ฎ€ไฝ“ linked_scroll_widgets A lib full of widgets that can react to the scrollController's offset change,to custom your UI effect.

WenJingRui 8 Oct 16, 2022
Flutter debug helper widget with common and custom actions

Flutter debug helper widget with common and custom actions

Stanislav Ilin 43 Dec 7, 2022
Flutter custom widget to make a group buttons. Included Radio and CheckBox buttons.

Flutter widget to create a group of buttons fast ?? Included Radio and CheckBox buttons models with custom groping types ?? Show some โค๏ธ and star the

Stanislav Ilin 162 Dec 26, 2022
Flutter Number Picker is a custom widget designed for choosing an integer or decimal number by using add and minus buttons

Flutter Number Picker is a custom widget designed for choosing an integer or decimal number by using add and minus buttons. Getting Started Head to /p

Vลฉ Phฦฐฦกng 2 Jul 4, 2022
A Flutter widget which synchronize a ScrollView and a custom tab view

scrollable_list_tabview A Flutter widget which synchronize a ScrollView and a custom tab view. The main idea is to create a custom tab view synchroniz

Aswanath C K 0 Apr 12, 2022
NumberPicker is a custom widget designed for choosing an integer or decimal number by scrolling spinners.

NumberPicker NumberPicker is a custom widget designed for choosing an integer or decimal number by scrolling spinners. Example: (See example for more)

Marcin Szaล‚ek 273 Nov 4, 2022
"wi_custom_bar" - a custom bar widget that implements a thermometer gauge bar created by wannai team

About wi_custom_bar "wi_custom_bar" is a custom bar widget that implements a thermometer gauge bar created by wannai team. Installing: In your pubspec

null 3 Feb 23, 2022
A widget that can be dragged and scrolled in a single gesture and snapped to a list of extents.

Sliding Sheet A widget that can be dragged and scrolled in a single gesture and snapped to a list of extents. Click here to view the full example. Ins

null 396 Mar 10, 2022
A sliding up panel widget which can be used to show or hide content, beautiful and simple.

flutter_sliding_up_panel A sliding up panel widget which can be used to show or hide content, beautiful and simple. demo Getting Started dependencies:

null 25 Dec 12, 2022