Files
days_left_flutter/lib/widgets/LoaderWidget.dart
hmalik144 f83071fa78 - Introduction on base view model and stateless widget classes
- Implementation of firebase
- Implementation of dependency injection

Took 11 hours 26 minutes
2021-07-24 20:54:18 +01:00

61 lines
1.3 KiB
Dart

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class LoaderWidget extends StatefulWidget {
final Widget body;
LoaderWidget({this.body, Key key}): super(key: key);
@override
LoaderWidgetState createState() => LoaderWidgetState();
}
class LoaderWidgetState extends State<LoaderWidget> {
bool _status = false;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return Center(
child: _status ? Center(child: CircularProgressIndicator())
: Center(
child: widget.body,
),
);
}
void changeState(){
setState(() {
_status = !_status;
});
}
}
abstract class LoaderStatelessWidget extends StatelessWidget{
final loaderKey = GlobalKey<LoaderWidgetState>();
void changeState(){
loaderKey.currentState.changeState();
}
Widget LoaderWidgeted({Widget body}){
return LoaderWidget(body: body, key: loaderKey);
}
}
abstract class LoaderStatefulWidget<T extends StatefulWidget> extends State<T>{
final loaderKey = GlobalKey<LoaderWidgetState>();
void changeState(){
loaderKey.currentState.changeState();
}
Widget LoaderWidgeted(Widget body, Key key){
return LoaderWidget(body: body, key: key);
}
}