showQueueToast static method
void
showQueueToast(
- String msg, {
- bool status = true,
- BuildContext? context,
- BuildToastQueueStyle? buildStyle,
- Duration showTime = const Duration(milliseconds: 2000),
- Duration animationTime = const Duration(milliseconds: 600),
- Offset startOffset = const Offset(0, 0),
- Offset endOffset = const Offset(0, -100),
- ScalingFactor mobile = const ScalingFactor(0.7, 0.7),
- ScalingFactor tablet = const ScalingFactor(0.5, 0.7),
- ScalingFactor desktop = const ScalingFactor(0.3, 0.7),
- SizedBox divider = const SizedBox(height: 10),
支持队列的方式显示多个 toast 默认自下向上退出 显示的宽高受最大 ScalingFactor 缩放因子决定
Implementation
static void showQueueToast(
String msg, {
bool status = true,
BuildContext? context,
BuildToastQueueStyle? buildStyle,
Duration showTime = const Duration(milliseconds: 2000),
Duration animationTime = const Duration(milliseconds: 600),
Offset startOffset = const Offset(0, 0),
Offset endOffset = const Offset(0, -100),
ScalingFactor mobile = const ScalingFactor(0.7, 0.7),
ScalingFactor tablet = const ScalingFactor(0.5, 0.7),
ScalingFactor desktop = const ScalingFactor(0.3, 0.7),
SizedBox divider = const SizedBox(height: 10),
}) {
final toastStyle = buildStyle ?? _instance.globalBuildToastQueueStyle;
ToastTaskQueue(
msg: msg,
status: status,
queue: _queueTask,
showTime: showTime,
animationTime: animationTime,
startOffset: startOffset,
endOffset: endOffset,
valueListenable: _valueListenable,
);
if (_queueTaskOverlay == null) {
_queueTaskOverlay = OverlayEntry(builder: (BuildContext context) {
return ValueListenableBuilder<num>(
valueListenable: _valueListenable,
builder: (context, value, child) {
final tasks = ListView.separated(
itemCount: _queueTask.length,
physics: const PageScrollPhysics(),
separatorBuilder: (BuildContext context, int index)=>divider,
itemBuilder: (context, index) {
final task = _queueTask.elementAt(index);
return ToastTaskView(
key: ValueKey(task),
task:task,
style:toastStyle!,
callBack:() {
_queueTaskOverlay?.remove();
_queueTaskOverlay = null;
},
);
});
final size = MediaQuery.of(context).size;
return Center(
child: Responsive(
mobile: SizedBox(
width: size.width * mobile.horizontal,
height: size.height*mobile.vertical,
child: tasks,
),
tablet: SizedBox(
width: size.width * tablet.horizontal,
height: size.height*tablet.vertical,
child: tasks,
),
desktop: SizedBox(
width: size.width * desktop.horizontal,
height: size.height*desktop.vertical,
child: tasks,
)),
);
});
});
if (context == null) {
navigatorState.currentState?.overlay?.insert(_queueTaskOverlay!);
return;
}
var overlayState = Overlay.of(context);
overlayState.insert(_queueTaskOverlay!);
}
}