import 'package:flutter/cupertino.dart';

import'package:flutter/material.dart';

import'package:zhongfa_apps/services/ScreenAdapter.dart';///加载弹框

classProgressDialog {static bool _isShowing = false;///展示 {Widget child = const CircularProgressIndicator(valueColor: AlwaysStoppedAnimation(Colors.red),)}

static voidshowProgress(BuildContext context) {if (!_isShowing) {

_isShowing= true;

Navigator.push(

context,

_PopRoute(

child: _Progress(

child:newPadding(

padding:const EdgeInsets.all(12.0),

child:newCenter(//保证控件居中效果

child: newSizedBox(

width:120.0,

height:120.0,

child:newContainer(

decoration: ShapeDecoration(

color: Colors.black54,

shape: RoundedRectangleBorder(

borderRadius: BorderRadius.all(

Radius.circular(8.0),

),

),

),

child:newColumn(

mainAxisAlignment: MainAxisAlignment.center,

crossAxisAlignment: CrossAxisAlignment.center,

children:[newCircularProgressIndicator(

backgroundColor: Colors.white,

strokeWidth:4.0,

valueColor:newAlwaysStoppedAnimation(Colors.black38),

),newPadding(

padding:constEdgeInsets.only(

top:20.0,

),

child:newText("加载中...",

style:newTextStyle(

fontSize: ScreenAdapter.size(32),

color: Colors.white),

),

),

],

),

),

),

),

),

),

),

);

}

}///隐藏

static voidhideProgress(BuildContext context) {if(_isShowing) {

Navigator.of(context).pop();

_isShowing= false;

}

}

}///Widget

class_Progress extends StatelessWidget {

final Widget child;

_Progress({

Key key,

@requiredthis.child,

}) : assert(child!= null),

super(key: key);

@override

Widget build(BuildContext context) {returnMaterial(

color: Colors.transparent,

child: Center(

child: child,

));

}

}///Route

class_PopRoute extends PopupRoute {

final Duration _duration= Duration(milliseconds: 300);

Widget child;

_PopRoute({@requiredthis.child});

@override

Colorget barrierColor => null;

@overridebool get barrierDismissible => true;

@override

Stringget barrierLabel => null;

@override

Widget buildPage(BuildContext context, Animationanimation,

AnimationsecondaryAnimation) {returnchild;

}

@override

Durationget transitionDuration =>_duration;

}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐