import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:oktoast/oktoast.dart'; class Toast{ static void show( String message, { ToastType? type, ToastPosition? position, }) { // type 和 position 有默认值 ToastType toastType = type ?? ToastType.None; ToastPosition toastPosition = position ?? ToastPosition.bottom; showToastWidget( _getContent(toastType, message), duration: const Duration(seconds: 2), position: toastPosition, // top / center / bottom ); } static Widget _getContent(ToastType type,String message){ Widget icon; switch(type){ case ToastType.Normal: icon = Icon(Icons.check_circle,color: Colors.green); case ToastType.Error: icon = Icon(Icons.cancel,color: Colors.redAccent); case ToastType.Warn: icon = Icon(Icons.error,color: Colors.deepOrangeAccent); case ToastType.None: icon = SizedBox(); } Widget result = Container( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), decoration: BoxDecoration( color: Colors.black87, borderRadius: BorderRadius.circular(8), boxShadow: [ BoxShadow( color: Colors.black26, blurRadius: 6, offset: Offset(2, 2), ), ], ), child: Row( mainAxisSize: MainAxisSize.min, children: [ icon, if(type!=ToastType.None)SizedBox(width: 5,), Text( message, style: const TextStyle(color: Colors.white, fontSize: 16), ), ], ), ); return result; } } enum ToastType{ None,Error,Warn,Normal }