loading_layout 1.0.1
loading_layout: ^1.0.1 copied to clipboard
The easy way to show loading indicators in your Flutter app. Less boilerplate code, highly customizable.
Loading Widget #
The easy way to show loading indicators in your Flutter app! With this package, you can easily show loading indicators on your app without having to add boilerplate code like a stack widget. Plus, the widget is highly customizable, allowing you to integrate third-party loading indicators or your self-made ones.
Installing #
Add this to your package's pubspec.yaml
file:
dependencies:
loading_widget: ^latest
Import #
import 'package:loading_widget/loading_widget.dart';
How to use #
import 'package:flutter/material.dart';
import 'package:loading_layout/loading_layout.dart';
class SimplePage extends StatefulWidget {
const SimplePage({Key? key}) : super(key: key);
@override
State<SimplePage> createState() => _SimplePageState();
}
class _SimplePageState extends State<SimplePage> {
var isLoading = false;
@override
Widget build(BuildContext context) {
return SafeArea(
child: LoadingLayout(
displayDuration: 3000,
dismissOnTap: true,
onDismissTap: () {
print('OnDismiss');
setState(() {
isLoading = false;
});
},
onDisplayTimeOut: () {
isLoading = false; setState(() {
isLoading = false;
});
print('onDisplayTimeOut');
},
onToggleChanged: (val) {
print('onToggleChanged $val');
},
isLoading: isLoading,
child: Scaffold(
body: Container(),
floatingActionButton: FloatingActionButton(
child: Icon(isLoading ? Icons.toggle_off : Icons.toggle_on),
onPressed: () {
setState(() {
isLoading = !isLoading;
});
}),
)),
);
}
}
- Use loading_controller
import 'package:flutter/material.dart';
import 'package:loading_layout/loading_controller.dart';
import 'package:loading_layout/loading_layout.dart';
class WithControllerPage extends StatelessWidget {
WithControllerPage({Key? key}) : super(key: key);
final LoadingController _controller = LoadingController(
displayDuration: 3000,
);
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: LoadingLayout.withController(
controller: _controller,
dismissOnTap: true,
child: Container(),
),
floatingActionButton: FloatingActionButton(
child: ValueListenableBuilder(
valueListenable: _controller,
builder: (context, isLoading, _) =>
Icon(isLoading ? Icons.toggle_off : Icons.toggle_on),
),
onPressed: () {
_controller.value = !_controller.value;
}),
),
);
}
}