mmmzq / bot_toast Goto Github PK
View Code? Open in Web Editor NEWA very easy-to-use flutter popup library. Including toast, loading, etc.
License: Apache License 2.0
A very easy-to-use flutter popup library. Including toast, loading, etc.
License: Apache License 2.0
MaterialApp(
builder: (context, child) {
return BotToastInit(child: child);
},
navigatorObservers: [BotToastNavigatorObserver()],
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
It doesn't seem to be working with overlay... I used overlay so I can calculate the size of my hamburger menu items... then based on that I can open the menu by shifting the entire app a little to one side...
but now the toast won't come up
我的flutter sdk是dev的1.10.14,引入你的库会报错Error compiling dartdevc module:bot_toast|lib/bot_toast.ddc.js
这个该如何解决
The following assertion was thrown while handling a gesture:
'package:bot_toast/src/bot_toast_init.dart': Failed assertion: line 10 pos 10: '_key?.currentState != null': is not true.
When the exception was thrown, this was the stack:
#2 botToastManager (package:bot_toast/src/bot_toast_init.dart:10:10)
#3 BotToast.showWidget (package:bot_toast/src/toast.dart:829:5)
#4 BotToast.showEnhancedWidget (package:bot_toast/src/toast.dart:767:18)
#5 BotToast.showAnimationWidget (package:bot_toast/src/toast.dart:611:12)
#6 BotToast.showCustomText (package:bot_toast/src/toast.dart:331:12)
...
Handler: "onTap"
Recognizer: TapGestureRecognizer#cd9af
debugOwner: GestureDetector
state: possible
won arena
finalPosition: Offset(241.5, 133.3)
finalLocalPosition: Offset(91.3, 24.9)
button: 1
sent tap down
════════════════════════════════════════════════════════════════════════════════════════════════════
E/flutter (27433): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The method 'call' was called on null.
E/flutter (27433): Receiver: null
E/flutter (27433): Tried calling: call()
E/flutter (27433): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
E/flutter (27433): #1 BotToast.showEnhancedWidget.<anonymous closure> (package:bot_toast/src/toast.dart:719:17)
E/flutter (27433): <asynchronous suspension>
E/flutter (27433): #2 BotToast.showEnhancedWidget.<anonymous closure> (package:bot_toast/src/toast.dart)
E/flutter (27433): #3 BotToast.showEnhancedWidget.<anonymous closure> (package:bot_toast/src/toast.dart:738:20)
E/flutter (27433): #4 _rootRun (dart:async/zone.dart:1180:38)
E/flutter (27433): #5 _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (27433): #6 _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter (27433): #7 _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1019:23)
E/flutter (27433): #8 _rootRun (dart:async/zone.dart:1184:13)
E/flutter (27433): #9 _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter (27433): #10 _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:1003:23)
E/flutter (27433): #11 Timer._createTimer.<anonymous closure> (dart:async-patch/timer_patch.dart:23:15)
E/flutter (27433): #12 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:398:19)
E/flutter (27433): #13 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:429:5)
E/flutter (27433): #14 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
E/flutter (27433):
❯ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 1.18.0-11.1.pre, on Mac OS X 10.15.2 19C57, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✗] Xcode - develop for iOS and macOS
✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
Download at: https://developer.apple.com/xcode/download/
Or install Xcode via the App Store.
Once installed, run:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see https://flutter.dev/platform-plugins
To install:
sudo gem install cocoapods
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.6)
[!] IntelliJ IDEA Community Edition (version 2019.3.1)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.45.1)
[✓] Connected device (3 available)
! Doctor found issues in 2 categories.
@override
Widget build(BuildContext context) {
return Scaffold(
body:Column(
children: [
RaisedButton(
onPressed: () {
BotToast.showText(text: 'This is a toast message');
},
child: Text('Show tooltip'),
)
],
)
);
}
Hello,
When i add a dropdown widget inside bot_toast widget and i click on the dropdown, i get '_dropdownRoute == null' error.
The dropdown options actually open behind the bot_toast widget, which i can see after closing the bot_toast widget.
Is there any way to fix this?
Thank you for your time.
If call BotToast.showLoading(), no arg duration filled for networking loading, the loading ui do not dismiss forever.
因为一个 App 的 Toast 样式还是比较统一的,现在每次 showText 的时候都要传进去一个样式比较麻烦。
默认传递text是string,且在TextToast中设置了textAlign=TextAlign.center,如果显示内容较多,第二行不是左对齐,而是居中了,建议增加textAlign属性。
或者增加一个textwidget属性,允许完全自定义显示格式。
text和textwidget可以二选一。
Great work. This is a simple to use and very versatile toast plug-in. I have two questions:
由于FlutterBoost混合栈方案是会创建多个平行的Navigator,当前的BotToast在寻找Navigator的时候,会找到最后一个Navigator并在此Navigator的Overlay中添加OverlayEntry,这就导致了当前显示的Navigator并不是需要添加toast的Navigator,显示也就不生效。
能不能使用findAncestorStateOfType向上寻找的方式,而非向下visitChildElements的方式寻找Navigator呢?
你好!对应BotToast.showLoading(),可否考虑增加hideLoading(),默认不是showLoading的Duration参数,一直显示等待界面,而当后续流程中用户可以通过代码调用hideLoading()手动结束Loading显示。谢谢! @MMMzq
showNotification() for example shows a white notification. Is there a way to change the background color of the notification (without having to make a completely custom one)? The rest of my app is pretty white too so it doesn't stand out enough.
Also it would be nice if I could set the margin (the space between the notification and the edges of te screen).
Nice plugin BTW.
如果项目使用到:
Navigator.of(context).pushAndRemoveUntil
去打开页面,插件会失效。如果再次初始化会报错。【不允许初始化多次!】
════════ Exception caught by scheduler library ═════════════════════════════════
The following assertion was thrown during a scheduler callback:
'package:flutter/src/widgets/overlay.dart': Failed assertion: line 132 pos 12: '_overlay != null': is not true.
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=BUG.md
When the exception was thrown, this was the stack
#2 OverlayEntry.remove
package:flutter/…/widgets/overlay.dart:132
#3 BotToastManager.remove.
package:bot_toast/src/bot_toast_manager.dart:130
#4 safeRun.
package:bot_toast/src/bot_toast_manager.dart:11
#5 SchedulerBinding._invokeFrameCallback
package:flutter/…/scheduler/binding.dart:1102
#6 SchedulerBinding.handleDrawFrame
package:flutter/…/scheduler/binding.dart:1049
...
════════════════════════════════════════════════════════════════════════════════
我想改窄一点
我看 demo 中有个例子是自定义 Widget,但那是个 AlertDialog,在构建 Widget 时用 WillPopScope 去处理,这样没问题,但实际上这种方式本质是 push 了 Widget 到路由中
能否开放一个能力,让调用方能控制物理返回键的作用
比如
BotToast.showLoading( child: const SpinKitRipple(color: Colors.white) );
这里我使用的是flutter_spinkit插件
这对于新手来说是非常便捷的
项目中有用到通知showSimpleNotification,但看了下无法更改背景颜色,
下一版本可否增加下。非常感谢您的付出
场景是这样:当调用接口的时候显示showLoading,接口调用成功的时候我主动关闭它,接着显示Text弹窗。而不是等待duration的时间过后自己关闭。有这API么
初始化,BotToastInit包在Store.init上也试过了
return Store.init(
context: context,
child: BotToastInit(
child: MaterialApp(
title: '海草',
onGenerateRoute: Application.router.generator, /// 路由主要代码
debugShowCheckedModeBanner: false, // 去除duBug banner
home: Builder(
builder: (context) {
//-------------------屏幕适配设置
ScreenUtil.instance = ScreenUtil(width: 750, height: 1334)..init(context);
//-------------------屏幕适配设置
return AppPage();
},
)
),
)
);
使用
Widget build(BuildContext context) {
hideStatus();
return WillPopScope(
onWillPop: () async {
BotToast.showText(text:"确定要退出么"); //弹出一个文本框;
return false;
}
报错信息
I/View (15400): Key down dispatch to io.flutter.view.FlutterView{8e34588 VFE...... .F...... 0,0-1080,1920}, event = KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_BACK, scanCode=158, metaState=0, flags=0x48, repeatCount=0, eventTime=687504485, downTime=687504485, deviceId=19, source=0x101 }
I/ViewRootImpl(15400): finishKeyEvent: handled = true keycode = 4 name=KEYCODE_BACK stage=10: View Post IME stage,inputElapseTime=6 eventTime = 687504485 downTime = 687504485 title= com.example.haicao_app/com.example.haicao_app.MainActivity
I/View (15400): Key up dispatch to io.flutter.view.FlutterView{8e34588 VFE...... .F...... 0,0-1080,1920}, event = KeyEvent { action=ACTION_UP, keyCode=KEYCODE_BACK, scanCode=158, metaState=0, flags=0x48, repeatCount=0, eventTime=687504598, downTime=687504485, deviceId=19, source=0x101 }
E/flutter (15400): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: 'package:bot_toast/src/toast.dart': Failed assertion: line 57 pos 12: 'null': Please initialize properly!
E/flutter (15400): Example:
E/flutter (15400): BotToastInit(
E/flutter (15400): child: MaterialApp(
E/flutter (15400): title: 'BotToast Demo',
E/flutter (15400): navigatorObservers: [BotToastNavigatorObserver()],
E/flutter (15400): home: XxxPage()
E/flutter (15400): ),
E/flutter (15400): );
E/flutter (15400):
�[38;5;244mE/flutter (15400): #0 _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:40:39)�[39;49m
�[38;5;244mE/flutter (15400): #1 _AssertionError._throwNew (dart:core-patch/errors_patch.dart:36:5)�[39;49m
�[38;5;248mE/flutter (15400): #2 BotToast._init (package:bot_toast/src/toast.dart:57:12)�[39;49m
�[38;5;248mE/flutter (15400): #3 BotToast.showWidget.<anonymous closure> (package:bot_toast/src/toast.dart:835:9)�[39;49m
E/flutter (15400): <asynchronous suspension>
�[38;5;248mE/flutter (15400): #4 BotToast.showWidget (package:bot_toast/src/toast.dart:843:6)�[39;49m
�[38;5;248mE/flutter (15400): #5 BotToast.showEnhancedWidget (package:bot_toast/src/toast.dart:771:18)�[39;49m
�[38;5;248mE/flutter (15400): #6 BotToast.showAnimationWidget (package:bot_toast/src/toast.dart:648:12)�[39;49m
�[38;5;248mE/flutter (15400): #7 BotToast.showCustomText (package:bot_toast/src/toast.dart:392:12)�[39;49m
�[38;5;248mE/flutter (15400): #8 BotToast.showText (package:bot_toast/src/toast.dart:344:12)�[39;49m
�[38;5;248mE/flutter (15400): #9 _GuidPageState.build.<anonymous closure>�[39;49m
E/flutter (15400): <asynchronous suspension>
�[38;5;244mE/flutter (15400): #10 ModalRoute.willPop�[39;49m
E/flutter (15400): <asynchronous suspension>
�[38;5;244mE/flutter (15400): #11 NavigatorState.maybePop�[39;49m
E/flutter (15400): <asynchronous suspension>
�[38;5;244mE/flutter (15400): #12 _WidgetsAppState.didPopRoute�[39;49m
E/flutter (15400): <asynchronous suspension>
�[38;5;244mE/flutter (15400): #13 WidgetsBinding.handlePopRoute�[39;49m
E/flutter (15400): <asynchronous suspension>
�[38;5;244mE/flutter (15400): #14 WidgetsBinding._handleNavigationInvocation�[39;49m
�[38;5;244mE/flutter (15400): #15 MethodChannel._handleAsMethodCall�[39;49m
E/flutter (15400): <asynchronous suspension>
�[38;5;244mE/flutter (15400): #16 MethodChannel.setMethodCallHandler.<anonymous closure>�[39;49m
�[38;5;244mE/flutter (15400): #17 _DefaultBinaryMessenger.handlePlatformMessage�[39;49m
E/flutter (15400): <asynchronous suspension>
�[38;5;244mE/flutter (15400): #18 _invoke3.<anonymous closure> (dart:ui/hooks.dart:293:15)�[39;49m
�[38;5;244mE/flutter (15400): #19 _rootRun (dart:async/zone.dart:1124:13)�[39;49m
�[38;5;244mE/flutter (15400): #20 _CustomZone.run (dart:async/zone.dart:1021:19)�[39;49m
�[38;5;244mE/flutter (15400): #21 _CustomZone.runGuarded (dart:async/zone.dart:923:7)�[39;49m
�[38;5;244mE/flutter (15400): #22 _invoke3 (dart:ui/hooks.dart:292:10)�[39;49m
�[38;5;244mE/flutter (15400): #23 _dispatchPlatformMessage (dart:ui/hooks.dart:154:5)�[39;49m
E/flutter (15400):
�[38;5;248m════════ Exception caught by scheduler library ═════════════════════════════════�[39;49m
�[38;5;244mThe following NoSuchMethodError was thrown during a scheduler callback:�[39;49m
The getter 'currentState' was called on null.
Receiver: null
Tried calling: currentState
�[38;5;244mWhen the exception was thrown, this was the stack�[39;49m
�[38;5;244m#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)�[39;49m
�[38;5;248m#1 BotToast.remove.<anonymous closure> (package:bot_toast/src/toast.dart:849:21)�[39;49m
�[38;5;248m#2 _safeRun.<anonymous closure> (package:bot_toast/src/toast.dart:15:13)�[39;49m
�[38;5;244m#3 SchedulerBinding._invokeFrameCallback�[39;49m
�[38;5;244m#4 SchedulerBinding.handleDrawFrame�[39;49m
�[38;5;244m...�[39;49m
�[38;5;248m════════════════════════════════════════════════════════════════════════════════�[39;49m
Hi, I'm sorry for opening this nonsense issue due to my lack of awareness. I think it's more like a question than a bug. I've tried to find the solution myself but I couldn't make it and I don't know where else to ask.
I just updated the package to the latest version which has a new way of initializing the package. In the previous version, we have to wrap our MaterialApp widget with BotToastInit which is fine for me. But, in the latest version, we need to put the BotToastInit inside the builder in the MaterialApp widget. However, I can't do that because I already have another function to put inside the builder which I used to remove the scroll bound glow effect for my whole app.
This is my code using the previous version of the package:
child: BotToastInit(
child: MaterialApp(
title: 'MyApp',
navigatorObservers: [BotToastNavigatorObserver()],
builder: (context, child) {
return ScrollConfiguration(
behavior: MyBehavior(), // remove scroll bound glow effect
child: child,
);
},
home: HomeScreen(),
),
),
Is there any way to call the botToastInit without having to replace my function with botToastInit inside the builder?
Thanks in advance!
Compiler message:
file:///D:/FlutterSDK/flutter/.pub-cache/hosted/pub.flutter-io.cn/bot_toast-2.3.0/lib/src/toast.dart:801:9: Error: No named parameter with the name 'reverseDuration'.
reverseDuration: reverseDuration);
^^^^^^^^^^^^^^^
file:///D:/FlutterSDK/flutter/packages/flutter/lib/src/animation/animation_controller.dart:231:3: Context: Found this candidate, but the arguments don't match.
AnimationController({
^
Compiler failed on G:\flutter_workspace\flutter_app\lib\main.dart
Finished with error: Gradle task assembleDebug failed with exit code 1
刚刚开始学习flutter,请问这个问题是什么原因?感谢
Hi guys! i having the following error every time the app starts
════════ Exception caught by scheduler library ═════════════════════════════════════════════════════
The following NoSuchMethodError was thrown during a scheduler callback:
The getter 'currentState' was called on null.
Receiver: null
Tried calling: currentState
When the exception was thrown, this was the stack:
#0 Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1 BotToast.removeAll. (package:bot_toast/src/toast.dart:855:21)
#2 _safeRun. (package:bot_toast/src/toast.dart:15:13)
#3 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1097:15)
#4 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1044:9)
...
Flutter 1.12.7-pre.7 • channel master • https://github.com/flutter/flutter.git
Framework • revision 0216953674 (2 hours ago) • 2019-11-21 09:41:46 -0800
Engine • revision 7a77e3625d
Tools • Dart 2.7.0
λ MacBook-Pro-de-Ne
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following TypeErrorImpl was thrown building Builder(dirty):
Expected a value of type 'Widget', but got one of type '_Future'
The relevant error-causing widget was:
Stack
file:///usr/local/Caskroom/flutter/latest/flutter/.pub-cache/hosted/pub.dartlang.org/bot_toast-3.0.0/lib/src/bot_toast_manager.dart:74:12
When the exception was thrown, this was the stack:
dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 216:49 throw
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/errors.dart 64:3 castError
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/operations.dart 444:10 cast
dart-sdk/lib/_internal/js_dev_runtime/private/ddc_runtime/types.dart 391:9 as
packages/flutter/src/material/page.dart 82:34 buildPage
packages/flutter/src/widgets/routes.dart 804:43
packages/flutter/src/widgets/basic.dart 7006:48 build
packages/flutter/src/widgets/framework.dart 4580:28 build
packages/flutter/src/widgets/framework.dart 4506:15 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5834:14 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5834:14 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 5951:32 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5834:14 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5834:14 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5834:14 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5834:14 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5834:14 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5834:14 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4485:5 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4670:11 [_firstBuild]
packages/flutter/src/widgets/framework.dart 4480:5 mount
packages/flutter/src/widgets/framework.dart 3450:13 inflateWidget
packages/flutter/src/widgets/framework.dart 3218:18 updateChild
packages/flutter/src/widgets/framework.dart 5584:32 updateChildren
packages/flutter/src/widgets/framework.dart 5961:17 update
packages/flutter/src/widgets/framework.dart 3205:14 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4711:5 update
packages/flutter/src/widgets/framework.dart 3205:14 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4866:5 update
packages/flutter/src/widgets/inherited_notifier.dart 181:11 update
packages/flutter/src/widgets/framework.dart 3205:14 updateChild
packages/flutter/src/widgets/framework.dart 5841:14 update
packages/flutter/src/widgets/framework.dart 3205:14 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4711:5 update
packages/flutter/src/widgets/framework.dart 3205:14 updateChild
packages/flutter/src/widgets/framework.dart 5841:14 update
packages/flutter/src/widgets/framework.dart 3205:14 updateChild
packages/flutter/src/widgets/framework.dart 5841:14 update
packages/flutter/src/widgets/framework.dart 3205:14 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 4587:5 update
packages/flutter/src/widgets/framework.dart 3205:14 updateChild
packages/flutter/src/widgets/framework.dart 4531:16 performRebuild
packages/flutter/src/widgets/framework.dart 4679:11 performRebuild
packages/flutter/src/widgets/framework.dart 4222:5 rebuild
packages/flutter/src/widgets/framework.dart 2627:31 buildScope
packages/flutter/src/widgets/binding.dart 864:49 drawFrame
packages/flutter/src/rendering/binding.dart 284:5 [_handlePersistentFrameCallback]
packages/flutter/src/scheduler/binding.dart 1074:15 [_invokeFrameCallback]
packages/flutter/src/scheduler/binding.dart 1013:9 handleDrawFrame
packages/flutter/src/scheduler/binding.dart 929:5 [_handleDrawFrame]
lib/_engine/engine/window.dart 578:13 _invoke
lib/_engine/engine/window.dart 222:5 invokeOnDrawFrame
lib/_engine/engine.dart 213:18
RT
退出登录页面:
BotToast.showText(text:'退出登录成功!');
//封装了fluro路由进行跳转至登录页,并清空栈
NavigatorUtils.push(viewService.context, LoginRouter.loginPage, clearStack: true);
登录页面:
//...网络判断手机号是否可用
var close = BotToast.showLoading();
//...请求远程接口后回调
close();
报如下错误:
════════ Exception caught by scheduler library ═════════════════════════════════════════════════════
The following assertion was thrown during a scheduler callback:
The entry used for `below` must be in the Overlay and in the `newEntriesList`.
'package:flutter/src/widgets/overlay.dart':
Failed assertion: line 377 pos 7: 'below == null || (below._overlay == this && _entries.contains(below) && newEntriesList.contains(below))'
Either the assertion indicates an error in the framework itself, or we should provide substantially more information in this error message to help you determine and fix the underlying cause.
In either case, please report this assertion by filing a bug on GitHub:
https://github.com/flutter/flutter/issues/new?template=BUG.md
When the exception was thrown, this was the stack:
#2 OverlayState.rearrange (package:flutter/src/widgets/overlay.dart:377:7)
#3 BotToastManager._checkNavigatorState.<anonymous closure>.<anonymous closure> (package:bot_toast/src/bot_toast_manager.dart:85:22)
#4 safeRun.<anonymous closure> (package:bot_toast/src/toast.dart:15:13)
#5 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
#6 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1049:9)
...
════════════════════════════════════════════════════════════════════════════════════════════════════
去掉showText或showLoading其中一个,都正常,就是不能两个一块调用
能否全局设置toast默认样式?
bottoast很好用,但似乎没有初始化参数,比如设置showText背景颜色,padding等等。
if you reply 二次封装 then you can close this issue. haha
BotToast.showLoading调用后如何手动关闭?
theme pageTransitionsTheme will not work if use BotToastInit
PageTransitionsBuilder createTransition() {
return CupertinoPageTransitionsBuilder();
}
// pageTransitionsTheme not work here
theme: ThemeData(
primarySwatch: Colors.blue,
pageTransitionsTheme: PageTransitionsTheme(
builders: <TargetPlatform, PageTransitionsBuilder>{
TargetPlatform.iOS: createTransition(),
TargetPlatform.android: createTransition(),
},
),
),
it will work if delete BotToastInit
.
flutter: ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
flutter: The following assertion was thrown during a scheduler callback:
flutter: 'package:flutter/src/widgets/overlay.dart': Failed assertion: line 132 pos 12: '_overlay != null':
flutter: 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?template=BUG.md
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2 OverlayEntry.remove (package:flutter/src/widgets/overlay.dart:132:12)
flutter: #3 BotToastManager.removeAll.. (package:bot_toast/src/bot_toast_manager.dart:132:15)
flutter: #4 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:379:8)
flutter: #5 BotToastManager.removeAll. (package:bot_toast/src/bot_toast_manager.dart:130:23)
flutter: #6 safeRun. (package:bot_toast/src/toast.dart:15:13)
flutter: #7 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
flutter: #8 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1049:9)
flutter: #9 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:957:5)
flutter: #13 _invoke (dart:ui/hooks.dart:259:10)
flutter: #14 _drawFrame (dart:ui/hooks.dart:217:3)
flutter: (elided 5 frames from class _AssertionError and package dart:async)
Widget build(BuildContext context) {
return MultiProvider(
providers: [
StreamProvider<UserProfile>.value(
value: locator<LoginService>().userController.stream,
initialData: UserProfile.initial(),
),
StreamProvider<MobileSettings>.value(
value: locator<MobileSettingsService>().settingsController.stream,
initialData: MobileSettings.initial(),
),
],
child: DynamicTheme(
key: dynamicKey,
defaultBrightness: Brightness.dark,
data: (brightness) => appThemePadrao().data,
themedWidgetBuilder: (context, theme) {
return BotToastInit(
key: botKey,
child: MaterialApp(
key: materialKey,
title: 'CRM',
debugShowCheckedModeBanner: false,
theme: theme,
initialRoute: '/',
onGenerateRoute: Router.generateRoute,
navigatorObservers: [BotToastNavigatorObserver()],
),
);
}
),
);
}
I getting this error:
I/flutter ( 5336): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 5336): The following assertion was thrown building ProxyDispose(state: _ProxyDisposeState#e48d3):
I/flutter ( 5336): Multiple widgets used the same GlobalKey.
I/flutter ( 5336): The key [LabeledGlobalKey#1ac8b] was used by multiple widgets. The parents of
I/flutter ( 5336): those widgets were:
I/flutter ( 5336): - ProxyDispose(state: _ProxyDisposeState#aeb65)
I/flutter ( 5336): - ProxyDispose(state: _ProxyDisposeState#e48d3)
I/flutter ( 5336): A GlobalKey can only be specified on one widget at a time in the widget tree.
I/flutter ( 5336):
I/flutter ( 5336): User-created ancestor of the error-causing widget was:
I/flutter ( 5336): MaterialApp-[<'materialKey'>]
[✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Mac OS X 10.15.1 19B88, locale pt-BR)
• Flutter version 1.9.1+hotfix.6 at /Users/phelipepalte/SDK/flutter
• Framework revision 68587a0916 (3 months ago), 2019-09-13 19:46:58 -0700
• Engine revision b863200c37
• Dart version 2.5.0[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
• Android SDK at /Users/phelipepalte/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-29, build-tools 29.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
• All Android licenses accepted.[✓] Xcode - develop for iOS and macOS (Xcode 11.2.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.2.1, Build version 11B53
• CocoaPods version 1.8.4[✓] Android Studio (version 3.5)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 41.0.2
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)[!] VS Code (version 1.40.0)
• VS Code at /Applications/Visual Studio Code.app/Contents
✗ Flutter extension not installed; install from
https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter[✓] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.0.0 (API 26) (emulator)! Doctor found issues in 1 category.
I'm trying to use this package but I'm having the following error:
flutter: ══╡ EXCEPTION CAUGHT BY SCHEDULER LIBRARY ╞═════════════════════════════════════════════════════════
flutter: The following assertion was thrown during a scheduler callback:
flutter: Initialization error.
flutter: The initialization method has been modified in version 2.0.
flutter: do you wrapped you app widget like this?
flutter:
flutter: BotToastInit(
flutter: child: MaterialApp(
flutter: navigatorObservers: [BotToastNavigatorObserver()],
flutter: home: EnterPage(),
flutter: ),
flutter: );
flutter: 'package:bot_toast/src/toast.dart':
flutter: Failed assertion: line 83 pos 14: 'null'
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?template=BUG.md
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #2 BotToast.init.<anonymous closure>
package:bot_toast/src/toast.dart:83
flutter: #3 _safeRun.<anonymous closure>
package:bot_toast/src/toast.dart:14
flutter: #4 SchedulerBinding._invokeFrameCallback
package:flutter/…/scheduler/binding.dart:1033
flutter: #5 SchedulerBinding.handleDrawFrame
package:flutter/…/scheduler/binding.dart:983
flutter: #6 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure>
package:flutter/…/scheduler/binding.dart:784
flutter: #15 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)
flutter: #16 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)
flutter: #17 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)
My code:
return BotToastInit(
child: MaterialApp(
navigatorObservers: [BotToastNavigatorObserver()],
title: getTitle(),
theme: getTheme(),
initialRoute: getInitialRoute(),
onGenerateRoute: getRoutes,
supportedLocales: getLocalization().supportedLocales(),
localizationsDelegates: <LocalizationsDelegate<dynamic>>[
l10nService,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
]);
If I dont use "localizationsDelegates" the library works fine:
return BotToastInit(
child: MaterialApp(
navigatorObservers: [BotToastNavigatorObserver()],
title: getTitle(),
theme: getTheme(),
initialRoute: getInitialRoute(),
onGenerateRoute: getRoutes));
If you remove the SafeArea from showCustomNotification and let the custom widget handle it then it will allow you to have the top notification color the status bar as well as the main control.
This is around line 225 for toast.dart
Please see showcase library which give the option to nest builder on the mainapp.
you request all the builder for your self.. ;) its not polite
别的控件都会传入一个 CancelFunc 用于取消显示,onTap 没有。
希望在 Notification 系列的组件上侧滑或点击关闭按钮时加一个onCancel的事件,谢谢!
mac simulator内 多次测试发现 只要打开showLoading十来秒 就会导致内存飙升 电脑风扇嗷嗷叫
请问官方例子里面的 customeWidget 如何让背景黑色遮罩支持点击穿透
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.