showMessage static method
dynamic
showMessage(})
需在游戏中展示/调用toast请使用 forceShowMessage 方法
Implementation
static showMessage(
String? message, {
int duration = 1,
bool needCancelOld = false, // 是否要取消旧的,避免视图一直叠加
String? key, // 用来判断这个toast是否正在展示
ToastGravity gravity = ToastGravity.CENTER, // toast展示位置,默认屏幕中间
bool needForceShow = false, //是否要在游戏中展示
}) {
if (message == null || message.isEmpty) {
return;
}
if (needForceShow == false) {
if (OverlayInit.shouldGiveupToastCheck != null) {
bool shouldGiveup = OverlayInit.shouldGiveupToastCheck!();
if (shouldGiveup == true) {
return;
}
}
}
if (needCancelOld == true) {
Fluttertoast.cancel();
}
_lock.synchronized(() {
// 1.这个文案是否正在展示
if (key != null) {
if (_messages.contains(key)) {
return;
}
} else {
if (_messages.contains(message)) {
return;
}
}
// 2.记录正在展示
if (key != null) {
_messages.add(key);
} else {
_messages.add(message);
}
// 3.在指定时间过后移出列表
Future.delayed(Duration(milliseconds: (_interval * 1000).toInt()), () {
if (key != null) {
_messages.remove(key);
} else {
_messages.remove(message);
}
});
Fluttertoast.showToast(
msg: message,
toastLength: Toast.LENGTH_SHORT,
gravity: gravity,
timeInSecForIosWeb: duration,
backgroundColor: Color(0xFF333333),
textColor: Colors.white,
fontSize: 13.0.w_pt_cj,
);
});
}