loading_mixin 1.1.0 loading_mixin: ^1.1.0 copied to clipboard
Add loading to your application with just two words, adding this mixin to your class.
Want to add Loading to your app?
With Loading Mixin you get it in a simple, fast and customizable way
Overview #
This package is for you to add loading to your application with just two words, adding this mixin to your class.
Contributing
For more information, see the complete example
Getting Started
In pubspec.yaml:
dependencies:
loading_mixin: any
Load type: Automatic, Custom, Manual and Predefined Time #
Basic:
First: in your State class, add the mixin to the LoadingMixin class
import 'package:loading_mixin/loading_mixin.dart';
class LoadingMixinTest extends StatefulWidget {
@override
_LoadingMixinTestState createState() => _LoadingMixinTestState();
}
//State Class
class _LoadingMixinTestState extends State<LoadingMixinTest> with LoadingMixin {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Loading Mixin'),
),
body: buildBody(),
);
}
.
.
.
Second: add the startLoad method by passing your asynchronous function wherever you need
RaisedButton(onPressed: () async {
var result = await this.startAutomaticLoad(context, requestData);
result != null ? print('$result') : print('No data found!');
},
child: Text('Default Load',style: TextStyle(color: Colors.white),
),
)
//Async/HTTP request Example
static Future requestData() async {
await Future.delayed(Duration(milliseconds: 1500));
return 1844;
}
}
Custom: You can also customize your loading by passing the customLaod parameter
RaisedButton(onPressed: () async {
var customLoad = Container(
height: 50,
width: 50,
color: Colors.transparent,
child: Center(
child: CircularProgressIndicator(
valueColor: new AlwaysStoppedAnimation<Color>(Colors.yellow),
),
),
);
var result = await this.startAutomaticLoad(
context,
requestData,
loadingConfig: LoadingConfig(customLoad: customLoad),
);
result != null ? print('$result') : print('No data found!');
},
child: Text(
'Async',
style: TextStyle(color: Colors.white),
),
)
Manual Load: You can also start and finish the load manually
RaisedButton( onPressed: () async {
//Open Load
var ovelayEntry = this.startManualLoad(context);
//Your code
print('Put your code here!');
await Future.delayed(Duration(seconds: 2));
//Close Load
this.endManualLoad(context, ovelayEntry);
},
child: Text(
'Manual Load',
style: TextStyle(color: Colors.white),
),
)
Features and bugs #
Please send feature requests and bugs at the issue tracker.