loading_dialog.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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({String? loadingTxt, bool backDismiss = false}) {
  18. SmartDialog.show(
  19. tag: tag,
  20. backDismiss: backDismiss,
  21. clickMaskDismiss: false,
  22. builder: (_) {
  23. return Container(
  24. padding: EdgeInsets.all(20.w),
  25. decoration: BoxDecoration(
  26. color: ColorName.black70,
  27. borderRadius: BorderRadius.circular(12.w),
  28. ),
  29. child: IntrinsicHeight(
  30. child: Column(
  31. mainAxisAlignment: MainAxisAlignment.center,
  32. children: [
  33. CircularProgressIndicator(
  34. strokeWidth: 3.w,
  35. valueColor:
  36. const AlwaysStoppedAnimation(ColorName.white75),
  37. ),
  38. Visibility(
  39. visible: loadingTxt != null,
  40. child: SizedBox(height: 12.w)),
  41. Builder(builder: (context) {
  42. if (loadingTxt == null) {
  43. return const SizedBox.shrink();
  44. }
  45. return Text(loadingTxt,
  46. style: TextStyle(
  47. fontSize: 13.sp, color: ColorName.white75));
  48. })
  49. ],
  50. ),
  51. ));
  52. });
  53. }
  54. static void hide() {
  55. SmartDialog.dismiss(tag: tag);
  56. }
  57. }