loading_dialog.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import 'package:flutter/cupertino.dart';
  2. import 'package:flutter/material.dart';
  3. import 'package:flutter_screenutil/flutter_screenutil.dart';
  4. import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
  5. import '../resource/colors.gen.dart';
  6. class LoadingDialog {
  7. static void show(String msg, {bool? clickMaskDismiss, bool? backDismiss}) {
  8. SmartDialog.showLoading(
  9. msg: msg, clickMaskDismiss: clickMaskDismiss, backDismiss: backDismiss);
  10. }
  11. static void hide() {
  12. SmartDialog.dismiss();
  13. }
  14. }
  15. class CustomLoadingDialog {
  16. static String tag = "CustomLoadingDialog";
  17. static void show(
  18. {String? loadingTxt,
  19. bool backDismiss = true,
  20. bool clickMaskDismiss = false}) {
  21. SmartDialog.show(
  22. tag: tag,
  23. backDismiss: backDismiss,
  24. clickMaskDismiss: clickMaskDismiss,
  25. builder: (_) {
  26. return Container(
  27. padding: EdgeInsets.all(20.w),
  28. decoration: BoxDecoration(
  29. color: ColorName.black70,
  30. borderRadius: BorderRadius.circular(12.w),
  31. ),
  32. child: IntrinsicHeight(
  33. child: Column(
  34. mainAxisAlignment: MainAxisAlignment.center,
  35. children: [
  36. CircularProgressIndicator(
  37. strokeWidth: 3.w,
  38. valueColor:
  39. const AlwaysStoppedAnimation(ColorName.white75),
  40. ),
  41. Visibility(
  42. visible: loadingTxt != null,
  43. child: SizedBox(height: 12.w)),
  44. Builder(builder: (context) {
  45. if (loadingTxt == null) {
  46. return const SizedBox.shrink();
  47. }
  48. return Text(loadingTxt,
  49. style: TextStyle(
  50. fontSize: 13.sp, color: ColorName.white75));
  51. })
  52. ],
  53. ),
  54. ));
  55. });
  56. }
  57. static void hide() {
  58. SmartDialog.dismiss(tag: tag);
  59. }
  60. }