Skip to content

Instantly share code, notes, and snippets.

@ajinasokan
Last active November 26, 2019 10:06
Show Gist options
  • Save ajinasokan/e9fc78e5eaad5b60bff22411b3d084a1 to your computer and use it in GitHub Desktop.
Save ajinasokan/e9fc78e5eaad5b60bff22411b3d084a1 to your computer and use it in GitHub Desktop.
Futter nested TabBarView bug
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")),
],
),
),
);
}
}
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