loading_dialog.dart 1.9 KB

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