Skip to content

GridView inside ExpansionTile with PageStorageKey throws type cast error #97583

Open

Description

@lukaskirner

Description

I try to have an GridView inside an ExpansionTile wrapped in a Sliverlist. To persist the state of the ExpansionTile I added a PageStorageKey but by expanding the ExpanstionTile, after collapsing it, an error is thrown

Steps to Reproduce

  1. Execute flutter run on the code sample

Expected results:
No error.

Actual results:
The following error is thrown upon expanding the ExpansionTile:

The following _CastError was thrown building GridView(scrollDirection: vertical, primary: using primary controller, NeverScrollableScrollPhysics, shrinkWrap: shrink-wrapping, dependencies: [MediaQuery, PrimaryScrollController]):
type 'bool' is not a subtype of type 'double?' in type cast
Code sample
import 'package:flutter/material.dart';

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

class TestScreen extends StatelessWidget {
  const TestScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Welcome to Flutter',
      home: Scaffold(
        body: CustomScrollView(
          physics: const BouncingScrollPhysics(),
          slivers: [
            // SliverAppBar comes here
            SliverList(
                delegate: SliverChildListDelegate([
              _expansionTile(),
            ]))
          ],
        ),
      ),
    );
  }

  Widget _expansionTile() {
    return ExpansionTile(
      initiallyExpanded: true,
      key: const PageStorageKey("some-key"), // <-- produces the error
      title: const Text("Expansoion Tile"),
      children: [_grid()],
    );
  }

  Widget _grid() {
    return GridView.count(
      shrinkWrap: true,
      crossAxisCount: 3,
      physics: const NeverScrollableScrollPhysics(),
      children: const [
        Text("1"),
        Text("2"),
        Text("3"),
        Text("4"),
        Text("5"),
      ],
    );
  }
}

Activity

  1. maheshj01 commented on Feb 2, 2022

    @maheshj01
    Member

    Hi @lukaskirner, Thanks for filing the issue, I am able to reproduce the issue on stable and the master channel error is thrown when collapsing the expansionTile.

    The following _CastError was thrown building GridView(scrollDirection: vertical, primary: using
    primary controller, NeverScrollableScrollPhysics, shrinkWrap: shrink-wrapping, dependencies:
    [MediaQuery, PrimaryScrollController]):
    type 'bool' is not a subtype of type 'double?' in type cast

    code sample
    import 'package:flutter/material.dart';
    
    void main() {
      runApp(const TestScreen());
    }
    
    class TestScreen extends StatelessWidget {
      const TestScreen({Key? key}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Welcome to Flutter',
          home: Scaffold(
            body: CustomScrollView(
              physics: const BouncingScrollPhysics(),
              slivers: [
                // SliverAppBar comes here
                const SliverToBoxAdapter(
                  child: SizedBox(
                    height: kToolbarHeight,
                  ),
                ),
                SliverList(
                    delegate: SliverChildListDelegate([
                  _expansionTile(),
                ]))
              ],
            ),
          ),
        );
      }
    
      Widget _expansionTile() {
        return ExpansionTile(
          initiallyExpanded: true,
          key: const PageStorageKey("some-key"), // <-- produces the error
          title: const Text("Expansoion Tile"),
          children: [_grid()],
        );
      }
    
      Widget _grid() {
        return GridView.count(
          shrinkWrap: true,
          crossAxisCount: 3,
          physics: const NeverScrollableScrollPhysics(),
          children: const [
            Text("1"),
            Text("2"),
            Text("3"),
            Text("4"),
            Text("5"),
          ],
        );
      }
    }
    
    flutter doctor -v
    [✓] Flutter (Channel master, 2.10.0-1.0.pre.339, on macOS 12.1 21C52 darwin-arm, locale en-GB)
        • Flutter version 2.10.0-1.0.pre.339 at /Users/mahesh/Documents/flutter_master
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision 1c673b28ad (2 days ago), 2022-01-31 02:20:13 -0500
        • Engine revision c6e12eb12b
        • Dart version 2.17.0 (build 2.17.0-67.0.dev)
        • DevTools version 2.10.0-dev.1
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
        • Android SDK at /Users/mahesh/Library/Android/sdk
        • Platform android-31, build-tools 31.0.0
        • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
        • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
        • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • CocoaPods version 1.10.2
    
    [✓] Chrome - develop for the web
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 4.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.8+10-b944.6916264)
    
    [✓] IntelliJ IDEA Community Edition (version 2021.2.1)
        • IntelliJ at /Applications/IntelliJ IDEA CE.app
        • Flutter plugin version 60.1.4
        • Dart plugin version 212.5080.8
    
    [✓] VS Code (version 1.63.2)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.34.0
    
    [✓] Connected device (4 available)
        • Redmi K20 Pro (mobile) • 192.168.1.2:5555                     • android-arm64  • Android 11 (API 30)
        • iPhone 12 Pro (mobile) • 14F40EC6-3B73-469A-A1C0-8CF0B152290F • ios            •
          com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
        • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52
          darwin-arm
        • Chrome (web)           • chrome                               • web-javascript • Google Chrome
          97.0.4692.99
    
    [✓] HTTP Host Availability
        • All required HTTP hosts are available
    
    • No issues found!
    
    [✓] Flutter (Channel stable, 2.8.1, on macOS 12.1 21C52 darwin-arm, locale en-GB)
        • Flutter version 2.8.1 at /Users/mahesh/Documents/flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision 77d935af4d (7 weeks ago), 2021-12-16 08:37:33 -0800
        • Engine revision 890a5fca2e
        • Dart version 2.15.1
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
        • Android SDK at /Users/mahesh/Library/Android/sdk
        • Platform android-31, build-tools 31.0.0
        • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
        • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
        • Java version OpenJDK Runtime Environment (build 11.0.8+10-b944.6916264)
        • All Android licenses accepted.
    
    [✓] Xcode - develop for iOS and macOS (Xcode 13.2.1)
        • Xcode at /Applications/Xcode.app/Contents/Developer
        • CocoaPods version 1.10.2
    
    [✓] Chrome - develop for the web
        • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    
    [✓] Android Studio (version 4.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.8+10-b944.6916264)
    
    [✓] IntelliJ IDEA Community Edition (version 2021.2.1)
        • IntelliJ at /Applications/IntelliJ IDEA CE.app
        • Flutter plugin version 60.1.4
        • Dart plugin version 212.5080.8
    
    [✓] VS Code (version 1.63.2)
        • VS Code at /Applications/Visual Studio Code.app/Contents
        • Flutter extension version 3.34.0
    
    [✓] Connected device (4 available)
        • Redmi K20 Pro (mobile) • 192.168.1.2:5555                     • android-arm64  • Android 11 (API 30)
        • iPhone 12 Pro (mobile) • 14F40EC6-3B73-469A-A1C0-8CF0B152290F • ios            •
          com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
        • macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52
          darwin-arm
        • Chrome (web)           • chrome                               • web-javascript • Google Chrome
          97.0.4692.99
    
    • No issues found!
    
    flutter run
    mahesh@Maheshs-MacBook-Air-M1 assets % flutter run 
    
    ┌─────────────────────────────────────────────────────────┐
    │ A new version of Flutter is available!                  │
    │                                                         │
    │ To update to the latest version, run "flutter upgrade". │
    └─────────────────────────────────────────────────────────┘
    Could not load custom device from config index 0: Expected enabled to be a boolean.
    Changing current working directory to: /Users/mahesh/Desktop/counter
    Multiple devices found:
    Redmi K20 Pro (mobile) • 192.168.1.2:5555                     • android-arm64  • Android 11 (API 30)
    iPhone 12 Pro (mobile) • 14F40EC6-3B73-469A-A1C0-8CF0B152290F • ios            •
    com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
    macOS (desktop)        • macos                                • darwin-arm64   • macOS 12.1 21C52 darwin-arm
    Chrome (web)           • chrome                               • web-javascript • Google Chrome 97.0.4692.99
    [1]: Redmi K20 Pro (192.168.1.2:5555)
    [2]: iPhone 12 Pro (14F40EC6-3B73-469A-A1C0-8CF0B152290F)
    [3]: macOS (macos)
    [4]: Chrome (chrome)
    Please choose one (To quit, press "q/Q"): 1
    Running "flutter pub get" in counter...                             4.1s
    Launching lib/main.dart on Redmi K20 Pro in debug mode...
    Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
    Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
    Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
    Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
    Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
    Note: Some input files use or override a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    Running Gradle task 'assembleDebug'...                             63.7s
    ✓  Built build/app/outputs/flutter-apk/app-debug.apk.
    Installing build/app/outputs/flutter-apk/app.apk...                21.0s
    Syncing files to device Redmi K20 Pro...                           152ms
    I/example.counte(19508): ProcessProfilingInfo new_methods=1111 is saved saved_to_disk=1 resolve_classes_delay=8000
    
    Flutter run key commands.
    r Hot reload. 🔥🔥🔥
    R Hot restart.
    h List all available interactive commands.
    d Detach (terminate "flutter run" but leave application running).
    c Clear the screen
    q Quit (terminate the application on the device).
    
    💪 Running with sound null safety 💪
    
    An Observatory debugger and profiler on Redmi K20 Pro is available at: http://127.0.0.1:60126/kbUaxXDGESU=/
    The Flutter DevTools debugger and profiler on Redmi K20 Pro is available at:
    http://127.0.0.1:9101?uri=http://127.0.0.1:60126/kbUaxXDGESU=/
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_DOWN, id[0]=0, pointerCount=1, eventTime=73454897, downTime=73454897 } moveCount:0
    W/MirrorManager(19508): this model don't Support
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_UP, id[0]=0, pointerCount=1, eventTime=73454961, downTime=73454897 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_DOWN, id[0]=0, pointerCount=1, eventTime=73455736, downTime=73455736 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_UP, id[0]=0, pointerCount=1, eventTime=73455801, downTime=73455736 } moveCount:0
    
    ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
    The following _CastError was thrown building GridView(scrollDirection: vertical, primary: using
    primary controller, NeverScrollableScrollPhysics, shrinkWrap: shrink-wrapping, dependencies:
    [MediaQuery, PrimaryScrollController]):
    type 'bool' is not a subtype of type 'double?' in type cast
    
    The relevant error-causing widget was:
      GridView GridView:file:///Users/mahesh/Desktop/counter/lib/main.dart:44:21
    
    When the exception was thrown, this was the stack:
    #0      ScrollPosition.restoreScrollOffset (package:flutter/src/widgets/scroll_position.dart:424:103)
    #1      new ScrollPosition (package:flutter/src/widgets/scroll_position.dart:108:7)
    #2      new ScrollPositionWithSingleContext
    (package:flutter/src/widgets/scroll_position_with_single_context.dart:56:8)
    #3      ScrollController.createScrollPosition (package:flutter/src/widgets/scroll_controller.dart:233:12)
    #4      ScrollableState._updatePosition (package:flutter/src/widgets/scrollable.dart:423:44)
    #5      ScrollableState.didChangeDependencies (package:flutter/src/widgets/scrollable.dart:455:5)
    #6      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4948:11)
    #7      ComponentElement.mount (package:flutter/src/widgets/framework.dart:4763:5)
    ...     Normal element mounting (7 frames)
    #14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3823:14)
    #15     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6452:36)
    #16     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6463:32)
    ...     Normal element mounting (21 frames)
    #37     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3823:14)
    #38     Element.updateChild (package:flutter/src/widgets/framework.dart:3573:18)
    #39     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6321:14)
    #40     Element.updateChild (package:flutter/src/widgets/framework.dart:3534:15)
    #41     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6321:14)
    #42     Element.updateChild (package:flutter/src/widgets/framework.dart:3534:15)
    #43     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5817:32)
    #44     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6475:17)
    #45     Element.updateChild (package:flutter/src/widgets/framework.dart:3534:15)
    #46     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6321:14)
    #47     Element.updateChild (package:flutter/src/widgets/framework.dart:3534:15)
    #48     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6321:14)
    #49     Element.updateChild (package:flutter/src/widgets/framework.dart:3534:15)
    #50     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4814:16)
    #51     Element.rebuild (package:flutter/src/widgets/framework.dart:4511:5)
    #52     StatelessElement.update (package:flutter/src/widgets/framework.dart:4868:5)
    #53     Element.updateChild (package:flutter/src/widgets/framework.dart:3534:15)
    #54     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4814:16)
    #55     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4962:11)
    #56     Element.rebuild (package:flutter/src/widgets/framework.dart:4511:5)
    #57     StatefulElement.update (package:flutter/src/widgets/framework.dart:4994:5)
    #58     Element.updateChild (package:flutter/src/widgets/framework.dart:3534:15)
    #59     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4814:16)
    #60     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4962:11)
    #61     Element.rebuild (package:flutter/src/widgets/framework.dart:4511:5)
    #62     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2713:19)
    #63     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:882:21)
    #64     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:363:5)
    #65     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1144:15)
    #66     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1081:9)
    #67     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:995:5)
    #71     _invoke (dart:ui/hooks.dart:151:10)
    #72     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
    #73     _drawFrame (dart:ui/hooks.dart:115:31)
    (elided 3 frames from dart:async)
    
    ════════════════════════════════════════════════════════════════════════════════════════════════════
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_DOWN, id[0]=0, pointerCount=1, eventTime=73457063, downTime=73457063 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_UP, id[0]=0, pointerCount=1, eventTime=73457137, downTime=73457063 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_DOWN, id[0]=0, pointerCount=1, eventTime=73457640, downTime=73457640 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_UP, id[0]=0, pointerCount=1, eventTime=73457706, downTime=73457640 } moveCount:0
    
    Another exception was thrown: type 'bool' is not a subtype of type 'double?' in type cast
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_DOWN, id[0]=0, pointerCount=1, eventTime=73458422, downTime=73458422 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_UP, id[0]=0, pointerCount=1, eventTime=73458496, downTime=73458422 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_DOWN, id[0]=0, pointerCount=1, eventTime=73459902, downTime=73459902 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_UP, id[0]=0, pointerCount=1, eventTime=73459975, downTime=73459902 } moveCount:0
    
    Another exception was thrown: type 'bool' is not a subtype of type 'double?' in type cast
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_DOWN, id[0]=0, pointerCount=1, eventTime=73460918, downTime=73460918 } moveCount:0
    D/MIUIInput(19508): [MotionEvent] ViewRootImpl { action=ACTION_UP, id[0]=0, pointerCount=1, eventTime=73460966, downTime=73460918 } moveCount:0
    
  2. added
    frameworkflutter/packages/flutter repository. See also f: labels.
    has reproducible stepsThe issue has been confirmed reproducible and is ready to work on
    f: scrollingViewports, list views, slivers, etc.
    and removed
    in triagePresently being triaged by the triage team
    on Feb 2, 2022
  3. lukaskirner commented on Feb 2, 2022

    @lukaskirner
    Author

    Thx. This also happens with ListView.

  4. added
    P2Important issues not at the top of the work list
    on Feb 2, 2022
  5. goderbauer commented on Feb 2, 2022

    @goderbauer
    Member

    Can you post the full stack trace that shows at what line this crashes?

  6. added
    c: crashStack traces logged to the console
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Feb 2, 2022
  7. lukaskirner commented on Feb 3, 2022

    @lukaskirner
    Author

    Sure.

    Stack Trace
    ════════ Exception caught by widgets library ═══════════════════════════════════
    The following _CastError was thrown building GridView(scrollDirection: vertical, primary: using primary controller, NeverScrollableScrollPhysics, shrinkWrap: shrink-wrapping, dependencies: [PrimaryScrollController, MediaQuery]):
    type 'bool' is not a subtype of type 'double?' in type cast
    
    The relevant error-causing widget was
    GridView
    lib/main.dart:60
    When the exception was thrown, this was the stack
    #0      ScrollPosition.restoreScrollOffset
    package:flutter/…/widgets/scroll_position.dart:424
    #1      new ScrollPosition
    package:flutter/…/widgets/scroll_position.dart:108
    #2      new ScrollPositionWithSingleContext
    package:flutter/…/widgets/scroll_position_with_single_context.dart:56
    #3      ScrollController.createScrollPosition
    package:flutter/…/widgets/scroll_controller.dart:233
    #4      ScrollableState._updatePosition
    package:flutter/…/widgets/scrollable.dart:423
    #5      ScrollableState.didChangeDependencies
    package:flutter/…/widgets/scrollable.dart:455
    #6      StatefulElement._firstBuild
    package:flutter/…/widgets/framework.dart:4749
    #7      ComponentElement.mount
    package:flutter/…/widgets/framework.dart:4561
    ...     Normal element mounting (7 frames)
    #14     Element.inflateWidget
    package:flutter/…/widgets/framework.dart:3631
    #15     MultiChildRenderObjectElement.inflateWidget
    package:flutter/…/widgets/framework.dart:6261
    #16     MultiChildRenderObjectElement.mount
    package:flutter/…/widgets/framework.dart:6272
    ...     Normal element mounting (19 frames)
    #35     Element.inflateWidget
    package:flutter/…/widgets/framework.dart:3631
    #36     Element.updateChild
    package:flutter/…/widgets/framework.dart:3383
    #37     SingleChildRenderObjectElement.update
    package:flutter/…/widgets/framework.dart:6130
    #38     Element.updateChild
    package:flutter/…/widgets/framework.dart:3370
    #39     SingleChildRenderObjectElement.update
    package:flutter/…/widgets/framework.dart:6130
    #40     Element.updateChild
    package:flutter/…/widgets/framework.dart:3370
    #41     RenderObjectElement.updateChildren
    package:flutter/…/widgets/framework.dart:5626
    #42     MultiChildRenderObjectElement.update
    package:flutter/…/widgets/framework.dart:6284
    #43     Element.updateChild
    package:flutter/…/widgets/framework.dart:3370
    #44     SingleChildRenderObjectElement.update
    package:flutter/…/widgets/framework.dart:6130
    #45     Element.updateChild
    package:flutter/…/widgets/framework.dart:3370
    #46     SingleChildRenderObjectElement.update
    package:flutter/…/widgets/framework.dart:6130
    #47     Element.updateChild
    package:flutter/…/widgets/framework.dart:3370
    #48     ComponentElement.performRebuild
    package:flutter/…/widgets/framework.dart:4613
    #49     Element.rebuild
    package:flutter/…/widgets/framework.dart:4311
    #50     StatelessElement.update
    package:flutter/…/widgets/framework.dart:4669
    #51     Element.updateChild
    package:flutter/…/widgets/framework.dart:3370
    #52     ComponentElement.performRebuild
    package:flutter/…/widgets/framework.dart:4613
    #53     StatefulElement.performRebuild
    package:flutter/…/widgets/framework.dart:4763
    #54     Element.rebuild
    package:flutter/…/widgets/framework.dart:4311
    #55     StatefulElement.update
    package:flutter/…/widgets/framework.dart:4795
    #56     Element.updateChild
    package:flutter/…/widgets/framework.dart:3370
    #57     ComponentElement.performRebuild
    package:flutter/…/widgets/framework.dart:4613
    #58     StatefulElement.performRebuild
    package:flutter/…/widgets/framework.dart:4763
    #59     Element.rebuild
    package:flutter/…/widgets/framework.dart:4311
    #60     BuildOwner.buildScope
    package:flutter/…/widgets/framework.dart:2578
    #61     WidgetsBinding.drawFrame
    package:flutter/…/widgets/binding.dart:882
    #62     RendererBinding._handlePersistentFrameCallback
    package:flutter/…/rendering/binding.dart:363
    #63     SchedulerBinding._invokeFrameCallback
    package:flutter/…/scheduler/binding.dart:1145
    #64     SchedulerBinding.handleDrawFrame
    package:flutter/…/scheduler/binding.dart:1082
    #65     SchedulerBinding._handleDrawFrame
    package:flutter/…/scheduler/binding.dart:996
    #69     _invoke (dart:ui[/hooks.dart:150:10]())
    #70     PlatformDispatcher._drawFrame (dart:ui[/platform_dispatcher.dart:270:5]())
    #71     _drawFrame (dart:ui[/hooks.dart:114:31]())
    (elided 3 frames from dart:async)
    ════════════════════════════════════════════════════════════════════════════════
    
  8. removed
    waiting for responseThe Flutter team cannot make further progress on this issue until the original reporter responds
    on Feb 3, 2022
  9. 4 remaining items

  10. khuntia commented on Jul 28, 2022

    @khuntia

    This is also happening if SingleChildScrollView is having PaginatedDataTable as child with both having PageStorageKey. The pagestoragekey for the paginateddatatable throws a casting error of "type 'double' is not a subtype of type 'int?' in type cast".

  11. bobekos commented on Aug 25, 2022

    @bobekos

    @TahaTesser
    hi any progress here?

  12. removed their assignment
    on Oct 5, 2022
  13. AdamBridges commented on Jun 5, 2023

    @AdamBridges

    Reason

    The reason this error is because when providing PageStorageKey to ExpansionTile, this key used to main state for ExpansionTile, which retrieves bool value from page storage for _isExpanded local variable.

    _isExpanded = PageStorage.of(context)?.readState(context) as bool? ?? widget.initiallyExpanded;

    Which is also inherited by ListView or Grid View (any scrollable) to reset their position on rebuild here:

    final double? value = PageStorage.of(context.storageContext)?.readState(context.storageContext) as double?;

    bool page storage key is passed to restoreScrollOffset in scroll_position.dart, which expects a double value. hence the error.

    Why not just let the developer handle the state and set _isExpanded to whatever is provided to the widget via initiallyExpanded, changing expansion_tile.dart like so:

    _isExpanded = widget.initiallyExpanded;

    Note that in my particular case, I am receiving this error:
    ======== Exception caught by widgets library =======================================================
    The following _TypeError was thrown building Container(clipBehavior: Clip.antiAlias, bg: BoxDecoration(border: Border.all(BorderSide(color: Color(0xffe0e0e0))), borderRadius: BorderRadius.circular(15.0)), dependencies: [Directionality]):
    type 'double' is not a subtype of type 'bool?' in type cast
    
    The relevant error-causing widget was: 
      Container Container:file:///A:/FlutterProjects/../lib/ui/new_entry/symptom_list_tile_widget.dart:94:14
    When the exception was thrown, this was the stack: 
    #0      _ExpansionTileState.initState (package:flutter/src/material/expansion_tile.dart:536:68)
    #1      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5602:55)
    #2      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447:5)
    ...     Normal element mounting (109 frames)
    #111    Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326:16)
    #112    Element.updateChild (package:flutter/src/widgets/framework.dart:3837:18)
    #113    SliverMultiBoxAdaptorElement.updateChild (package:flutter/src/widgets/sliver.dart:858:37)
    #114    SliverMultiBoxAdaptorElement.createChild.<anonymous closure> (package:flutter/src/widgets/sliver.dart:843:20)
    #115    BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2835:19)
    #116    SliverMultiBoxAdaptorElement.createChild (package:flutter/src/widgets/sliver.dart:835:12)
    #117    RenderSliverMultiBoxAdaptor._createOrObtainChild.<anonymous closure> (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:349:23)
    #118    RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2657:59)
    #119    PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:1071:15)
    #120    RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2657:14)
    #121    RenderSliverMultiBoxAdaptor._createOrObtainChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:338:5)
    #122    RenderSliverMultiBoxAdaptor.addInitialChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:424:5)
    #123    RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:77:12)
    #124    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #125    RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139:12)
    #126    RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:361:11)
    #127    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #128    RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601:13)
    #129    RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1554:12)
    #130    RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1463:20)
    #131    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #132    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #133    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #134    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #135    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #136    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #137    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #138    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #139    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #140    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #141    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #142    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #143    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #144    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #145    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #146    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #147    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #148    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #149    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #150    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #151    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #152    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #153    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #154    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #155    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1434:11)
    #156    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #157    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #158    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #159    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #160    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #161    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #162    RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:569:11)
    #163    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #164    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #165    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #166    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #167    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #168    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #169    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #170    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #171    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #172    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #173    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #174    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #175    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #176    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #177    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #178    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #179    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #180    RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:238:12)
    #181    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #182    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #183    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #184    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #185    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #186    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #187    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #188    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #189    RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:309:19)
    #190    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #191    RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139:12)
    #192    _RenderSliverFractionalPadding.performLayout (package:flutter/src/widgets/sliver_fill.dart:160:11)
    #193    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #194    RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601:13)
    #195    RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1554:12)
    #196    RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1463:20)
    #197    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #198    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #199    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #200    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #201    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #202    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #203    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #204    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #205    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #206    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #207    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #208    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #209    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #210    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #211    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #212    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #213    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #214    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #215    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #216    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #217    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #218    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #219    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #220    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #221    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1434:11)
    #222    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #223    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #224    RenderSliverFillRemainingWithScrollable.performLayout (package:flutter/src/rendering/sliver_fill.dart:87:14)
    #225    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #226    RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601:13)
    #227    RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1554:12)
    #228    RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1463:20)
    #229    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #230    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #231    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #232    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #233    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #234    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #235    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #236    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #237    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #238    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #239    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #240    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #241    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #242    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #243    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #244    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #245    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #246    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #247    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #248    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #249    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #250    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #251    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #252    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #253    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1434:11)
    #254    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #255    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #256    ChildLayoutHelper.layoutChild (package:flutter/src/rendering/layout_helper.dart:52:11)
    #257    RenderFlex._computeSizes (package:flutter/src/rendering/flex.dart:868:45)
    #258    RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:903:32)
    #259    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #260    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #261    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #262    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #263    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #264    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:104:21)
    #265    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #266    RenderBox.layout (package:flutter/src/rendering/box.dart:2389:11)
    #267    RenderSliverMultiBoxAdaptor.insertAndLayoutChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:489:13)
    #268    RenderSliverFixedExtentBoxAdaptor.performLayout (package:flutter/src/rendering/sliver_fixed_extent_list.dart:319:17)
    #269    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #270    RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:139:12)
    #271    _RenderSliverFractionalPadding.performLayout (package:flutter/src/widgets/sliver_fill.dart:160:11)
    #272    RenderObject.layout (package:flutter/src/rendering/object.dart:2546:7)
    #273    RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:601:13)
    #274    RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1554:12)
    #275    RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1463:20)
    #276    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:2385:7)
    #277    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1025:18)
    #278    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:1038:15)
    #279    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:591:23)
    #280    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:986:13)
    #281    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457:5)
    #282    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325:15)
    #283    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255:9)
    #284    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1113:5)
    #288    _invoke (dart:ui/hooks.dart:314:10)
    #289    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:383:5)
    #290    _drawFrame (dart:ui/hooks.dart:283:31)
    (elided 3 frames from dart:async)
    
  14. sinnaj-r commented on Feb 3, 2025

    @sinnaj-r

    @maheshj01 Any updates on this? This bug makes the ExpansionTile bairly usable for us.

  15. loganpar commented on Nov 11, 2025

    @loganpar

    Any updates on this? Still seems to be an issue, though it might be better classified as a design oversight.

  16. suhail-121 commented on Jul 13, 2026

    @suhail-121

    I wrapped my expansion tile with pagestorage widget it was resolved for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listc: crashStack traces logged to the consolef: scrollingViewports, list views, slivers, etc.found in release: 2.10Found to occur in 2.10found in release: 2.8Found to occur in 2.8frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onteam-frameworkOwned by Framework teamtriaged-frameworkTriaged by Framework teamworkaround availableThere is a workaround available to overcome the issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions