Reputation:
I tried to implement the 'bubble_bottom_bar' in my flutter application after running my app I get this error which I don't know and on Google I don't found something useful.
E/flutter ( 4903): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: 'package:flutter/src/widgets/framework.dart': Failed
assertion: line 2624 pos 20: '_debugCurrentBuildTarget == context': is not true.
E/flutter ( 4903): #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:46:39)
E/flutter ( 4903): #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)
E/flutter ( 4903): #2 BuildOwner.buildScope.<anonymous closure>
(package:flutter/src/widgets/framework.dart:2624:20)
E/flutter ( 4903): #3 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2628:12)
E/flutter ( 4903): #4 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1086:13)
E/flutter ( 4903): #5 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:927:7)
E/flutter ( 4903): #6 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:908:7)
E/flutter ( 4903): #7 _rootRun (dart:async/zone.dart:1182:47)
E/flutter ( 4903): #8 _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 4903): #9 _CustomZone.runGuarded (dart:async/zone.dart:997:7)
E/flutter ( 4903): #10 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1037:23)
E/flutter ( 4903): #11 _rootRun (dart:async/zone.dart:1190:13)
E/flutter ( 4903): #12 _CustomZone.run (dart:async/zone.dart:1093:19)
E/flutter ( 4903): #13 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1021:23)
E/flutter ( 4903): #14 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:18:15)
timer_impl.dart:428:5) r_impl.dart:397:19)
E/flutter ( 4903): #17 _RawReceivePortImpl._handleMessage (dart:itimer_impl.dart:428:5)solate-patch/isolate_patch.dart:168:12) solate-patch/isolate_patch.dart:168:12)
E/flutter ( 4903):
I/OpenGLRenderer( 4903): Davey! duration=11820ms; Flags=1, IntendedVsync=313138546400, Vsync=313138546400, Olync=313138546400, Vsync=313138546400, OldestInputEvent=92233720368547531800, AnimationStart=313140549500, Per75807, NewestInputEvent=0, HandleInputStart=313140531800, AnimationSt00, SyncStart=324319140500, IssueDrawComart=313140549500, PerformTraversalsStart=313140579500, DrawStart=3243 DequeueBufferDuration=486425700, QueueB14567900, SyncQueued=324315324600, SyncStart=324319140500, IssueDrawCommandsStart=324319822700, SwapBuffers=324452499100, FrameCompleted=3oing too much work on its main thread.24962429000, DequeueBufferDuration=486425700, QueueBufferDuration=971800, GpuCompleted=0,
I'm using VS-Code as editor and Android Studio as Android emulator. Both are up to date! Flutter and Dart is also up to date. I tried using an Android phone instead of the emulator -> same error.
$ flutter doctor -v
[√] Flutter (Channel beta, 1.23.0-18.1.pre, on Microsoft Windows [Version
10.0.18363.1198], locale de-DE)
• Flutter version 1.23.0-18.1.pre at C:\src\sdk\flutter
• Framework revision 198df796aa (4 weeks ago), 2020-10-15 12:04:33 -0700
• Engine revision 1d12d82d9c
• Dart version 2.11.0 (build 2.11.0-213.1.beta)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
• Android SDK at C:\Users\marce\AppData\Local\Android\sdk
• Platform android-30, build-tools 30.0.1
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Android Studio (version 4.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 48.0.2
• Dart plugin version 193.7361
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] VS Code (version 1.51.0)
• VS Code at C:\Users\marce\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.16.0
[√] Connected device (1 available)
• sdk gphone x86 arm (mobile) • emulator-5554 • android-x86 • Android 11 (API 30)
(emulator)
• No issues found!
import 'package:flutter/material.dart';
import 'package:venora_tracker/pages/home.dart';
import 'package:venora_tracker/components/appScaffold.dart';
void main() => runApp(App());
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AppScaffold(
home: HomePage(),
);
}
}
import 'package:flutter/material.dart';
//? COMPONENTS & LIB ITEMS
//? PACKAGES
import 'package:bubble_bottom_bar/bubble_bottom_bar.dart';
//? PAGES
import 'package:venora_tracker/pages/wallet.dart';
import 'package:venora_tracker/pages/eintraege.dart';
import 'package:venora_tracker/pages/konten.dart';
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int currentIndex = 0;
void changePage(int index) {
setState(() {
currentIndex = index;
});
}
Widget callPage(int _selectedBar) {
switch (_selectedBar) {
case 0:
return HomePage();
case 1:
return WalletPage();
case 2:
return EintraegePage();
case 3:
return KontenPage();
break;
default:
return null;
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('MoneyTracker'),
),
body: this.callPage(this.currentIndex),
floatingActionButton: FloatingActionButton(
onPressed: () {},
child: Icon(Icons.add),
backgroundColor: Colors.indigo,
),
floatingActionButtonLocation: FloatingActionButtonLocation.endDocked,
bottomNavigationBar: BubbleBottomBar(
opacity: .2,
currentIndex: currentIndex,
onTap: changePage,
borderRadius: BorderRadius.vertical(top: Radius.circular(16)),
elevation: 8,
fabLocation: BubbleBottomBarFabLocation.end, //new
hasNotch: true, //new
hasInk: true, //new, gives a cute ink effect
inkColor: Colors.black12, //optional, uses theme color if not specified
items: <BubbleBottomBarItem>[
BubbleBottomBarItem(
//Home
backgroundColor: Colors.indigo,
icon: Icon(
Icons.home,
color: Colors.black,
),
activeIcon: Icon(
Icons.home,
color: Colors.indigo,
),
title: Text("Start")),
BubbleBottomBarItem(
//Wallet
backgroundColor: Colors.green[800],
icon: Icon(
Icons.account_balance_wallet,
color: Colors.black,
),
activeIcon: Icon(
Icons.account_balance_wallet,
color: Colors.green[800],
),
title: Text("Wallet")),
BubbleBottomBarItem(
//Icon3
backgroundColor: Colors.deepOrange,
icon: Icon(
Icons.credit_card,
color: Colors.black,
),
activeIcon: Icon(
Icons.credit_card,
color: Colors.deepOrange,
),
title: Text("Konten")),
BubbleBottomBarItem(
//Icon 4
backgroundColor: Colors.deepPurple,
icon: Icon(
Icons.menu,
color: Colors.black,
),
activeIcon: Icon(
Icons.menu,
color: Colors.deepPurple,
),
title: Text("Einträge"))
],
),
);
}
}
import 'package:flutter/material.dart';
class AppScaffold extends StatelessWidget {
AppScaffold({this.home});
final Widget home;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MoneyTracker',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.indigo,
primaryColor: Colors.indigo,
secondaryHeaderColor: Colors.indigo,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: home,
);
}
}
Upvotes: 0
Views: 7927
Reputation: 54365
You can copy paste run full code below
In HomePage
you call HomePage
again cause this error
You can create a new Page1
and change HomePage
to Page1
code snippet
Widget callPage(int _selectedBar) {
switch (_selectedBar) {
case 0:
return Page1();
...
class Page1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: Text("Page1"));
}
}
working demo
full code
import 'package:bubble_bottom_bar/bubble_bottom_bar.dart';
import 'package:flutter/material.dart';
void main() => runApp(App());
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AppScaffold(
home: HomePage(),
);
}
}
class AppScaffold extends StatelessWidget {
AppScaffold({this.home});
final Widget home;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'MoneyTracker',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.indigo,
primaryColor: Colors.indigo,
secondaryHeaderColor: Colors.indigo,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: home,
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
int currentIndex = 0;
void changePage(int index) {
setState(() {
currentIndex = index;
});
}
Widget callPage(int _selectedBar) {
switch (_selectedBar) {
case 0:
return Page1();
case 1:
return WalletPage();
case 2:
return EintraegePage();
case 3:
return KontenPage();
break;
default:
return null;
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('MoneyTracker'),
),
body: this.callPage(this.currentIndex),
floatingActionButton: FloatingActionButton(
onPressed: () {},
child: Icon(Icons.add),
backgroundColor: Colors.indigo,
),
floatingActionButtonLocation: FloatingActionButtonLocation.endDocked,
bottomNavigationBar: BubbleBottomBar(
opacity: .2,
currentIndex: currentIndex,
onTap: changePage,
borderRadius: BorderRadius.vertical(top: Radius.circular(16)),
elevation: 8,
fabLocation: BubbleBottomBarFabLocation.end, //new
hasNotch: true, //new
hasInk: true, //new, gives a cute ink effect
inkColor: Colors.black12, //optional, uses theme color if not specified
items: <BubbleBottomBarItem>[
BubbleBottomBarItem(
//Home
backgroundColor: Colors.indigo,
icon: Icon(
Icons.home,
color: Colors.black,
),
activeIcon: Icon(
Icons.home,
color: Colors.indigo,
),
title: Text("Start")),
BubbleBottomBarItem(
//Wallet
backgroundColor: Colors.green[800],
icon: Icon(
Icons.account_balance_wallet,
color: Colors.black,
),
activeIcon: Icon(
Icons.account_balance_wallet,
color: Colors.green[800],
),
title: Text("Wallet")),
BubbleBottomBarItem(
//Icon3
backgroundColor: Colors.deepOrange,
icon: Icon(
Icons.credit_card,
color: Colors.black,
),
activeIcon: Icon(
Icons.credit_card,
color: Colors.deepOrange,
),
title: Text("Konten")),
BubbleBottomBarItem(
//Icon 4
backgroundColor: Colors.deepPurple,
icon: Icon(
Icons.menu,
color: Colors.black,
),
activeIcon: Icon(
Icons.menu,
color: Colors.deepPurple,
),
title: Text("Einträge"))
],
),
);
}
}
class Page1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: Text("Page1"));
}
}
class WalletPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: Text("WalletPage"));
}
}
class EintraegePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: Text("EintraegePage"));
}
}
class KontenPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Center(child: Text("KontenPage"));
}
}
Upvotes: 2