loader first step

merge-update-with-lab-changes
Elham Rababah 6 years ago
parent 1323551bb1
commit cd7c354458

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

@ -3,13 +3,37 @@ import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart'; import 'package:diplomaticquarterapp/widgets/errors/app_embedded_error.dart';
import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart'; import 'package:diplomaticquarterapp/widgets/progress_indicator/app_circular_progress_Indeicator.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_gifimage/flutter_gifimage.dart';
class NetworkBaseView extends StatelessWidget { class NetworkBaseView extends StatefulWidget {
final BaseViewModel baseViewModel; final BaseViewModel baseViewModel;
final Widget child; final Widget child;
NetworkBaseView({Key key, this.baseViewModel, this.child}); NetworkBaseView({Key key, this.baseViewModel, this.child});
@override
_NetworkBaseViewState createState() => _NetworkBaseViewState();
}
class _NetworkBaseViewState extends State<NetworkBaseView> with TickerProviderStateMixin{
GifController controller1;
@override
void initState() {
controller1 = GifController(vsync: this);
WidgetsBinding.instance.addPostFrameCallback((_){
controller1.repeat(min: 0,max: 12,period: Duration(milliseconds: 750),reverse: true);
});
super.initState();
}
@override
void dispose() {
controller1.dispose();
super.dispose();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
@ -18,22 +42,35 @@ class NetworkBaseView extends StatelessWidget {
} }
buildBaseViewWidget() { buildBaseViewWidget() {
switch (baseViewModel.state) { switch (widget.baseViewModel.state) {
case ViewState.ErrorLocal: case ViewState.ErrorLocal:
case ViewState.Idle: case ViewState.Idle:
case ViewState.BusyLocal: case ViewState.BusyLocal:
return child; return widget.child;
break; break;
case ViewState.Busy: case ViewState.Busy:
return AppCircularProgressIndicator(); return Stack(children: [Container(
height: MediaQuery.of(context).size.height,
color: Colors.grey.withOpacity(0.6),
),Center(//progress-loading.gif
child: Container(
margin: EdgeInsets.only(bottom: 40),
child: GifImage(
controller: controller1,
image: AssetImage("assets/images/progress-loading.gif"),//NetworkImage("http://img.mp.itc.cn/upload/20161107/5cad975eee9e4b45ae9d3c1238ccf91e.jpg"),
),
),
)],);
break; break;
case ViewState.Error: case ViewState.Error:
return Center( return Center(
child: AppEmbeddedError( child: AppEmbeddedError(
error: baseViewModel.error, error: widget.baseViewModel.error,
), ),
); );
break; break;
} }
} }
} }

Loading…
Cancel
Save