Git Product home page Git Product logo

flutter-bottom-sheet's Introduction

Bottom Sheet

Made by Surf πŸ„β€β™‚οΈπŸ„β€β™‚οΈπŸ„β€β™‚οΈ

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

About

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

Overview

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

Demo

Demo

To show bottomSheet, use :

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

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

BottomSheet with height based on content

Demo

showFlexibleBottomSheet(
  minHeight: 0,
  initHeight: 0.8,
  maxHeight: 0.8,
  context: context,
  builder: _buildBottomSheet,
  isExpand: false,
);

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

Sticky BottomSheet

Demo

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

flutter-bottom-sheet's People

Contributors

dkrutskikh avatar drown0315 avatar dshevchenkoo avatar ekinsdrow avatar galimzyanovdanil avatar iamtosuj avatar internetova avatar kristinazoteva avatar mark-kascheev avatar martynov-alex avatar mbixjkee avatar mpkander avatar plasticfiresam avatar roketstorm avatar unusovoleg avatar vvpak avatar zaharovroman avatar zhukeev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

flutter-bottom-sheet's Issues

Add the opportunity to disable padding

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

Add the ability to disable the padding that appears when the keyboard is open.

Why should this feature be included?

I had to add Scaffold to FlexibleBottomSheet to be able to scroll to the text field when clicking on it. Therefore, I had to remove the padding in FlexibleBottomSheet in order for the Scaffold's resizeToAvoidBottomInset to work properly.

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

[BUG] Error when inertia closing BottomSheet.

Describe the bug

When the BottomSheet is open and the keyboard is open in it, when trying to close the BottomSheet by inertia, an error occurs:
======== Exception caught by rendering library =====================================================
The following assertion was thrown during layout:
A RenderFlex overflowed by 21 pixels on the bottom.

The relevant error-causing widget was:
The overflowing RenderFlex has an orientation of Axis.vertical.
The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and black striped pattern. This is usually caused by the contents being too big for the RenderFlex.

Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the RenderFlex to fit within the available space instead of being sized to their natural size.
This is considered an error condition because it indicates that there is content that cannot be seen. If the content is legitimately bigger than the available space, consider clipping it with a ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex, like a ListView.

Steps to Reproduce

Open BottomSheet with TextField inside, give focus to the TextField, and try to close the BottomSheet by inertia.

What is the expected behavior?

There should be no error.

Additional context

Happens on android and on iOS.

[BUG] BottomSheet not working with flutter 3.7

Describe the bug

First of all, Thanks for the package.

Yet, It seems that the showFlexibleBottomSheet function does not work properly anymore after the upgrade to Flutter 3.7.

Indeed, the builder function which is supposed to return the bottomSheetOffset according to the position of the modal is not updated in real-time but only at the beginning when I open the modal with the position initHeight.

import β€˜package:flutter/material.dart’;
import β€˜package:bottom_sheet/bottom_sheet.dart’;

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: β€˜Flutter Demo’,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: β€˜Home Page’),
    );
  }
}

class MyHomePage extends StatelessWidget {
  const MyHomePage({super.key, required this.title});
  final String title;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text(title)),
      body: Builder(builder: (context) {
        return Center(
child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                child: const Text((β€˜Flexible modal’)),
                onPressed: () => showAppFlexibleModal(
                  context: context,
                ),
              )
            ],
          ),
        );
      }),
    );
  }
}

const kModalInitialHeightFraction = 0.42;

void showAppFlexibleModal({required BuildContext context}) {
  showFlexibleBottomSheet<void>(
    context: context,
    minHeight: kModalInitialHeightFraction,
    initHeight: kModalInitialHeightFraction,
    maxHeight: 1,
    anchors: [kModalInitialHeightFraction, 1],
    isModal: false,
    isDismissible: true,
    useRootNavigator: true,
    builder: (context, scrollController, bottomSheetOffset) => CustomScrollView(
      controller: scrollController,
      slivers: [
        SliverToBoxAdapter(
            child: Text(
          β€˜Scroll offset: $bottomSheetOffset’,
          style: const TextStyle(fontSize: 20),
        )),
      ],
    ),
  );
}
  • Flutter version 3.3.9:
    ezgif com-video-to-gif-2

  • Flutter version 3.7.3:
    ezgif com-video-to-gif

Steps to Reproduce

Copy-paste the code above to reproduce the bug

What is the expected behavior?

In version 3.7, the offset should be updated in real time like in previous versions of Flutter (cf videos below)

Thanks a lot :)

[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.

Enable to dismiss bottom sheet at a specific height

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

A clear and concise description of what you want to happen.

Why should this feature be included?

Is your feature request related to a problem? Please describe a clear and concise description of what the problem is. If you investigated any alternative solutions please describe.

Additional context

Please provide any other context or screenshots about the feature request here.

[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

device-2022-11-24-111114.mp4

Bottom sheet hit anchor event.

Hi, thanks for the nice package.

I want to listen to events when the bottom sheet is get a specific anchor. I mean that if the bottom sheet opened and dragged up.

Any way to achieve this?

[BUG]

I would like to show the bottom sheet at the top of my navigation bar.

When I use my 'scaffoldStateKey' it is working with the flutter native solution scaffoldStateKey.currentState?.showBottomSheet, but not with this library.

My context is that I have a page (firstPage) nested inside a home page (homePage) that contains the navigation bar.

homePage :

@override
  Widget build(BuildContext context) {
    return Scaffold(
        resizeToAvoidBottomInset: false,
        bottomNavigationBar: BottomNavBar(...),
        body: FirstPage();
  }

firstPage :

@override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () async {
        ...
        return false;
      },
      child: Scaffold(
          key: scaffoldStateKey,
          resizeToAvoidBottomInset: ...
          backgroundColor: ...
          body: screenBody()),
    );
  }

showFlexibleBottomSheet(
        context: scaffoldStateKey.currentState!.context,
        builder: _buildBottomSheet,
        isModal: false);

I also tried by adding a top-level scaffoldStateKey to my homePage scaffold widget (homeScaffoldStateKey) and use it. But same result happen.

With scaffoldStateKey.currentState?.showBottomSheet :
Screenshot 2022-04-26 at 11 22 14
With showFlexibleBottomSheet(context: scaffoldStateKey.currentState!.context, :
Screenshot 2022-04-26 at 11 23 39

What is the expected behavior?

Having the modal bottom sheet shown at the top of my navigation bar. In the same way I use scaffoldStateKey.currentState?.showBottomSheet

[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): πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯`

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.

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.

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.

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.

[FEATURE REQUEST] Effective isModal: false

This is the best bottom sheet I have found, but I have a little problem with it. I want the area above the bottom sheet to be active when isModal: false is set. For example, if there is a map there, it can be handled with the bottom sheet open.

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

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?

Transparent space below the content (or no rounded corner on top)

Describe the bug

Using the showFlexibleBottomSheet() function, I want to display a modal bottom sheet, with a rounded corner on the top left.
So here is what I tried so far:

showFlexibleBottomSheet(
  ...
  minHeight: 0,
  initHeight: 0.5,
  maxHeight: 0.8,
  decoration: BoxDecoration(
    color: Colors.grey,
    borderRadius: BorderRadius.only(
      topLeft: 32,
    ),
  ),
  bottomSheetColor: Colors.transparent, // or Colors.grey
  builder (context, controller, offset) {
    return Container(
      color: Colors.grey,
      height: 200,
    );
  },
);

What is the expected behavior?

I expect to see the Container and the space below the Container to be grey.
But instead, the space below the Container is transparent.

Then I tried with bottomSheetColor: Colors.grey, but then the whole background is grey, and I can't see the rounded corner anymore.

On a side note, if I want to drag in the space below the Container, nothing happens.

Is there a controller to manage the bottom sheet ?

Maybe I'm mistaken but I didn't see any controller to manage the bottom sheet.

Is it possible to add a controller to manage the bottom sheet?

I want to open the bottom sheet programmatically, open to an anchor even a specific value is enough but I really want to control it programmaticaly.

[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] 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.

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.

[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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.