From 5cd825a8dc4253a1cc46bdfc86e9dcb573f9729b Mon Sep 17 00:00:00 2001 From: David Shuckerow Date: Wed, 11 Apr 2018 12:01:28 -0700 Subject: [PATCH] Fix performance regression caused by the Bottom App Bar demo (#16389) --- .../demo/material/bottom_app_bar_demo.dart | 33 +++++++------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart b/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart index 812ab2b7fd..bbfeb447ca 100644 --- a/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart +++ b/examples/flutter_gallery/lib/demo/material/bottom_app_bar_demo.dart @@ -271,35 +271,24 @@ class _DemoBottomAppBar extends StatelessWidget { @override Widget build(BuildContext context) { - final bool showsFirst = babMode == _BabMode.END_FAB; return new BottomAppBar( color: color, hasNotch: enableNotch, - child: new Row( - children: [ - new IconButton( - icon: const Icon(Icons.menu), - onPressed: () { - showModalBottomSheet(context: context, builder: (BuildContext context) => const _DemoDrawer()); - }, - ), - new Expanded( - child: new AnimatedCrossFade( - duration: const Duration(milliseconds: 225), - firstChild: buildBabContents(context, _BabMode.END_FAB), - firstCurve: showsFirst ? fadeOutCurve : fadeInCurve, - secondChild: buildBabContents(context, _BabMode.CENTER_FAB), - secondCurve: showsFirst ? fadeInCurve : fadeOutCurve, - crossFadeState: showsFirst ? CrossFadeState.showFirst : CrossFadeState.showSecond, - ), - ), - ], - ), + // TODO: Use an AnimatedCrossFade to build contents for centered FAB performantly. + // Using AnimatedCrossFade here previously was causing https://github.com/flutter/flutter/issues/16377. + child: buildBabContents(context, _BabMode.END_FAB), ); } Widget buildBabContents(BuildContext context, _BabMode babMode) { - final List rowContents = []; + final List rowContents = [ + new IconButton( + icon: const Icon(Icons.menu), + onPressed: () { + showModalBottomSheet(context: context, builder: (BuildContext context) => const _DemoDrawer()); + }, + ), + ]; if (babMode == _BabMode.CENTER_FAB) { rowContents.add( new Expanded(