loading组件 参考提供的库:https://pub.flutter-io.cn/packages/flutter_spinkit
一、首先定义loading组件:
1、//获取loading组件
Widget childWidget() {
Widget childWidget = new Stack(
children: <Widget>[
new Padding(
padding: new EdgeInsets.fromLTRB(0.0, 0.0, 0.0, 35.0),
child: new Center(
child: SpinKitFadingCircle(
color: Colors.blueAccent,
size: 30.0,
),
),
),
new Padding(
padding: new EdgeInsets.fromLTRB(0.0, 35.0, 0.0, 0.0),
child: new Center(
child: new Text("兄台莫急噻~~"),
),
),
],
);
return childWidget;
}
2、//Offstage的形式处理loading是否展示
class LoadingWidget extends StatelessWidget {
final bool visible;
LoadingWidget({Key key, this.visible}) : super(key: key);
@override
Widget build(BuildContext context) {
return new Offstage(
offstage: visible,
child:new Stack(
children: <Widget>[
new Padding(
padding: new EdgeInsets.fromLTRB(0.0, 0.0, 0.0, 35.0),
child: new Center(
child: SpinKitFadingCircle(
color: Colors.blueAccent,
size: 30.0,
),
),
),
new Padding(
padding: new EdgeInsets.fromLTRB(0.0, 35.0, 0.0, 0.0),
child: new Center(
child: new Text("兄台莫急噻~~"),
),
),
],
)
);
}
二、使用展示loading:
bool isShowLoading = false;
child: Center(
child:new Stack(
children: <Widget>[
container------------------,
//loading组件(下面三种,其实最简单的就是第一种)
1、new Offstage(
offstage: !isShowLoading,
child:childWidget()
)
2、isShowLoading?childWidget():Text('')
3、new LoadingWidget(visible: !isShowLoading)
]
)
)