zeba_academy_loading_kit 1.0.0
zeba_academy_loading_kit: ^1.0.0 copied to clipboard
Advanced Flutter loading UI kit with skeleton loaders, shimmer effects, and animated indicators.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:zeba_academy_loading_kit/zeba_academy_loading_kit.dart';
void main() {
runApp(const LoadingExampleApp());
}
class LoadingExampleApp extends StatelessWidget {
const LoadingExampleApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Zeba Loading Kit",
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorSchemeSeed: Colors.blue,
useMaterial3: true,
),
home: const LoadingDemo(),
);
}
}
class LoadingDemo extends StatefulWidget {
const LoadingDemo({super.key});
@override
State<LoadingDemo> createState() => _LoadingDemoState();
}
class _LoadingDemoState extends State<LoadingDemo> {
bool loading = true;
@override
void initState() {
super.initState();
Future.delayed(const Duration(seconds: 3), () {
setState(() {
loading = false;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Zeba Loading Kit"),
centerTitle: true,
),
body: LoadingContainer(
isLoading: loading,
child: ListView.builder(
padding: const EdgeInsets.all(16),
itemCount: 6,
itemBuilder: (context, index) {
return Card(
elevation: 3,
margin: const EdgeInsets.only(bottom: 16),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16),
),
child: ListTile(
leading: const CircleAvatar(
radius: 28,
backgroundImage: NetworkImage(
"https://i.pravatar.cc/150?img=3",
),
),
title: Text(
"User ${index + 1}",
style: const TextStyle(fontWeight: FontWeight.bold),
),
subtitle: const Text(
"Flutter developer • Loading demo content",
),
trailing: const Icon(Icons.arrow_forward_ios, size: 16),
),
);
},
),
),
);
}
}