在發起請求時 需要有loading頁面這樣可以讓用戶知道當前正在操作,又可以防止多次點擊等誤操作,所以這里就自定義了一個loading頁面 菊花使用flutter_spinkit里面的菊花來代替
在需要顯示loding的地方通過showDialog的彈窗的方式來顯示菊花,在需要關閉的時候讓dialog關閉
這里使用了flutter_spinkit
flutter_spinkit: ^4.0.0
具體代碼
loading.dart
import 'package:flutter/material.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
class Loading extends StatelessWidget {
static void show(BuildContext context) {
showDialog(
barrierDismissible: true,
context: context,
builder: (ctx) => Theme(
data: Theme.of(ctx).copyWith(dialogBackgroundColor: Colors.transparent),
child: Loading(),
),
);
}
static void dismiss(context) {
Navigator.pop(context);
}
@override
Widget build(BuildContext context) {
return Container(
color: Colors.transparent,
child: Center(
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(5),
),
width: 60,
height: 60,
alignment: Alignment.center,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
SpinKitFadingCircle(
color: Colors.black,
size: 46.0,
)
],
),
),
),
);
}
}
關於使用
Loading.show(context);
Loading.dismiss(context);