Skip to content

BottomAppBar doesn't work when set floatingActionButtonAnimator to FloatingActionButtonAnimator.noAnimation #172866

@k2evil

Description

@k2evil

Steps to reproduce

  1. Run the sample code

Expected results

BottomAppBar should be visible on the screen

Actual results

BottomAppBar is not rendered on the screen and throws exceptions

Code sample

Code sample
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: SizedBox(),
      bottomNavigationBar: BottomAppBar(),
      floatingActionButton: FloatingActionButton(onPressed: () {}),
      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
      floatingActionButtonAnimator: FloatingActionButtonAnimator.noAnimation,
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration

floatingActionButtonAnimator: FloatingActionButtonAnimator.scaling (This is result is also expected for noAnimation):

Image

floatingActionButtonAnimator: FloatingActionButtonAnimator.noAnimation:

Image

Logs

Logs
======== Exception caught by rendering library =====================================================
The following _TypeError was thrown during paint():
Null check operator used on a null value

The relevant error-causing widget was: 
  BottomAppBar BottomAppBar:file:///Users/saman/AndroidStudioProjects/bug/lib/main.dart:48:28
When the exception was thrown, this was the stack: 
#0      _ScaffoldGeometryNotifier.value (package:flutter/src/material/scaffold.dart:889:73)
#1      _BottomAppBarClipper.getClip (package:flutter/src/material/bottom_app_bar.dart:279:35)
#2      _RenderCustomClip._updateClip (package:flutter/src/rendering/proxy_box.dart:1490:25)
#3      RenderPhysicalShape.paint (package:flutter/src/rendering/proxy_box.dart:2255:5)
#4      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3427:7)
#5      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
#6      RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:3372:15)
#7      RenderCustomMultiChildLayoutBox.paint (package:flutter/src/rendering/custom_layout.dart:424:5)
#8      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3427:7)
#9      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
#10     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
#11     _RenderInkFeatures.paint (package:flutter/src/material/material.dart:632:11)
#12     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3427:7)
#13     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
#14     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
#15     RenderPhysicalModel.paint.<anonymous closure> (package:flutter/src/rendering/proxy_box.dart:2190:15)
#16     PaintingContext.pushClipRRect (package:flutter/src/rendering/object.dart:611:14)
#17     RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:2177:21)
#18     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3427:7)
#19     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
#20     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
#21     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3427:7)
#22     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:261:13)
#23     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:140:13)
#24     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3427:7)
#25     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:176:11)
#26     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:121:5)
#27     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1312:31)
#28     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1322:15)
#29     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:631:23)
#30     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1242:13)
#31     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495:5)
#32     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1438:15)
#33     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1351:9)
#34     SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:1060:9)
#35     PlatformDispatcher.scheduleWarmUpFrame.<anonymous closure> (dart:ui/platform_dispatcher.dart:889:16)
#39     _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:193:12)
(elided 3 frames from class _Timer and dart:async-patch)
The following RenderObject was being processed when the exception was fired: RenderPhysicalShape#f9ce7 relayoutBoundary=up1
...  parentData: offset=Offset(0.0, 701.1); id=_ScaffoldSlot.bottomNavigationBar (can use size)
...  constraints: BoxConstraints(w=392.7, 0.0<=h<=781.1)
...  size: Size(392.7, 80.0)
...  elevation: 3.0
...  color: Color(alpha: 1.0000, red: 0.9490, green: 0.9255, blue: 0.9569, colorSpace: ColorSpace.sRGB)
...  shadowColor: Color(alpha: 1.0000, red: 0.9490, green: 0.9255, blue: 0.9569, colorSpace: ColorSpace.sRGB)
...  clipper: _BottomAppBarClipper
RenderObject: RenderPhysicalShape#f9ce7 relayoutBoundary=up1
  parentData: offset=Offset(0.0, 701.1); id=_ScaffoldSlot.bottomNavigationBar (can use size)
  constraints: BoxConstraints(w=392.7, 0.0<=h<=781.1)
  size: Size(392.7, 80.0)
  elevation: 3.0
  color: Color(alpha: 1.0000, red: 0.9490, green: 0.9255, blue: 0.9569, colorSpace: ColorSpace.sRGB)
  shadowColor: Color(alpha: 1.0000, red: 0.9490, green: 0.9255, blue: 0.9569, colorSpace: ColorSpace.sRGB)
  clipper: _BottomAppBarClipper
...  child: RenderClipPath#b10bf relayoutBoundary=up2 NEEDS-PAINT
...    parentData: <none> (can use size)
...    constraints: BoxConstraints(w=392.7, 0.0<=h<=781.1)
...    size: Size(392.7, 80.0)
...    child: RenderCustomPaint#d47ab relayoutBoundary=up3 NEEDS-PAINT
...      parentData: <none> (can use size)
...      constraints: BoxConstraints(w=392.7, 0.0<=h<=781.1)
...      size: Size(392.7, 80.0)
...      painter: null
...      foregroundPainter: _ShapeBorderPainter#a78ea()
...      child: _RenderInkFeatures#7289c relayoutBoundary=up4 NEEDS-PAINT
...        parentData: <none> (can use size)
...        constraints: BoxConstraints(w=392.7, 0.0<=h<=781.1)
...        size: Size(392.7, 80.0)
...        child: RenderPadding#64f8a relayoutBoundary=up5 NEEDS-PAINT
...          parentData: <none> (can use size)
...          constraints: BoxConstraints(w=392.7, 0.0<=h<=781.1)
...          size: Size(392.7, 80.0)
...          padding: EdgeInsets.zero
...          textDirection: ltr
====================================================================================================

Flutter Doctor output

Doctor output
[✓] Flutter (Channel stable, 3.32.8, on macOS 15.5 24F74 darwin-arm64, locale en-US) [3.8s]
    • Flutter version 3.32.8 on channel stable at /Users/saman/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision edada7c56e (3 days ago), 2025-07-25 14:08:03 +0000
    • Engine revision ef0cd00091
    • Dart version 3.8.1
    • DevTools version 2.45.1

[✓] Android toolchain - develop for Android devices (Android SDK version 35.0.0) [15.9s]
    • Android SDK at /Users/saman/Library/Android/sdk
    • Platform android-35, build-tools 35.0.0
    • ANDROID_HOME = /Users/saman/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 21.0.5+-13047016-b750.29)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.2) [4.7s]
    • Xcode at /Users/saman/Downloads/Xcode.app/Contents/Developer
    • Build 16C5032a
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web [12ms]
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.3) [11ms]
    • 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 21.0.5+-13047016-b750.29)

[✓] VS Code (version 1.102.1) [9ms]
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (3 available) [6.7s]
    • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 12 (API 31) (emulator)
    • macOS (desktop)             • macos         • darwin-arm64   • macOS 15.5 24F74 darwin-arm64
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 138.0.7204.169

[✓] Network resources [1,215ms]
    • All expected network resources are available.

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work lista: error messageError messages from the Flutter frameworkf: material designflutter/packages/flutter/material repository.found in release: 3.32Found to occur in 3.32found in release: 3.33Found to occur in 3.33frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionteam-designOwned by Design Languages teamtriaged-designTriaged by Design Languages team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions