Last active
November 26, 2019 10:06
-
-
Save ajinasokan/e9fc78e5eaad5b60bff22411b3d084a1 to your computer and use it in GitHub Desktop.
Futter nested TabBarView bug
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
void main() => runApp(new MyApp()); | |
class MyApp extends StatefulWidget { | |
@override | |
_MyAppState createState() => new _MyAppState(); | |
} | |
class _MyAppState extends State<MyApp> with TickerProviderStateMixin { | |
TabController mainTabController; | |
TabController subTabController; | |
_MyAppState() { | |
mainTabController = new TabController(length: 4, vsync: this); | |
subTabController = new TabController(length: 2, vsync: this); | |
} | |
@override | |
Widget build(BuildContext context) { | |
return MaterialApp( | |
home: new Scaffold( | |
body: new TabBarView( | |
controller: mainTabController, | |
children: [ | |
Container(color: Colors.red), | |
Container( | |
color: Colors.blue, | |
child: Column( | |
children: <Widget>[ | |
TabBar( | |
controller: subTabController, | |
tabs: [ | |
Tab(text: "Yellow"), | |
Tab(text: "Grey"), | |
], | |
), | |
Expanded( | |
flex: 1, | |
child: TabBarView( | |
controller: subTabController, | |
children: <Widget>[ | |
Container(color: Colors.yellow), | |
Container(color: Colors.grey), | |
], | |
), | |
) | |
], | |
), | |
), | |
Container(color: Colors.green), | |
Container(color: Colors.indigo), | |
], | |
), | |
bottomNavigationBar: BottomNavigationBar( | |
currentIndex: mainTabController.index, | |
onTap: (i) { | |
setState(() { | |
mainTabController.animateTo(i); | |
}); | |
}, | |
type: BottomNavigationBarType.fixed, | |
items: <BottomNavigationBarItem>[ | |
BottomNavigationBarItem(icon: Icon(Icons.add), title: Text("Tab")), | |
BottomNavigationBarItem(icon: Icon(Icons.add), title: Text("Tab")), | |
BottomNavigationBarItem(icon: Icon(Icons.add), title: Text("Tab")), | |
BottomNavigationBarItem(icon: Icon(Icons.add), title: Text("Tab")), | |
], | |
), | |
), | |
); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════ | |
flutter: The following assertion was thrown while finalizing the widget tree: | |
flutter: 'package:flutter/src/widgets/scroll_position.dart': Failed assertion: line 658 pos 12: 'pixels != | |
flutter: null': is not true. | |
flutter: | |
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially | |
flutter: more information in this error message to help you determine and fix the underlying cause. | |
flutter: In either case, please report this assertion by filing a bug on GitHub: | |
flutter: https://github.com/flutter/flutter/issues/new | |
flutter: | |
flutter: When the exception was thrown, this was the stack: | |
flutter: #2 ScrollPosition.dispose (package:flutter/src/widgets/scroll_position.dart) | |
flutter: #3 ScrollPositionWithSingleContext.dispose (package:flutter/src/widgets/scroll_position_with_single_context.dart:255:11) | |
flutter: #4 ScrollableState.dispose (package:flutter/src/widgets/scrollable.dart:324:14) | |
flutter: #5 StatefulElement.unmount (package:flutter/src/widgets/framework.dart:3821:12) | |
flutter: #6 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1697:13) | |
flutter: #7 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #8 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #9 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #10 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #11 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #12 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #13 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #14 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #15 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #16 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #17 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #18 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #19 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #20 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #21 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #22 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #23 MultiChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4742:16) | |
flutter: #24 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #25 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #26 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4642:14) | |
flutter: #27 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #28 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #29 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #30 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #31 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #32 SingleChildRenderObjectElement.visitChildren (package:flutter/src/widgets/framework.dart:4642:14) | |
flutter: #33 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #34 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #35 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #36 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #37 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #38 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #39 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #40 _InactiveElements._unmount.<anonymous closure> (package:flutter/src/widgets/framework.dart:1695:7) | |
flutter: #41 ComponentElement.visitChildren (package:flutter/src/widgets/framework.dart:3676:14) | |
flutter: #42 _InactiveElements._unmount (package:flutter/src/widgets/framework.dart:1693:13) | |
flutter: #43 ListIterable.forEach (dart:_internal/iterable.dart:39:13) | |
flutter: #44 _InactiveElements._unmountAll (package:flutter/src/widgets/framework.dart:1706:25) | |
flutter: #45 BuildOwner.finalizeTree.<anonymous closure> (package:flutter/src/widgets/framework.dart:2328:27) | |
flutter: #46 BuildOwner.lockState (package:flutter/src/widgets/framework.dart:2160:15) | |
flutter: #47 BuildOwner.finalizeTree (package:flutter/src/widgets/framework.dart:2327:7) | |
flutter: #48 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:628:18) | |
flutter: #49 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5) | |
flutter: #50 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15) | |
flutter: #51 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9) | |
flutter: #52 _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5) | |
flutter: #53 _invoke (dart:ui/hooks.dart:120:13) | |
flutter: #54 _drawFrame (dart:ui/hooks.dart:109:3) | |
flutter: (elided 2 frames from class _AssertionError) | |
flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment