| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import 'package:flutter/material.dart';
-
- /// 加载遮罩组件
- class LoadingOverlay extends StatelessWidget {
- final bool isLoading;
- final Widget child;
- final String? message;
-
- const LoadingOverlay({
- super.key,
- required this.isLoading,
- required this.child,
- this.message,
- });
-
- @override
- Widget build(BuildContext context) {
- return Stack(
- children: [
- child,
- if (isLoading)
- Container(
- color: Colors.black.withOpacity(0.3),
- child: Center(
- child: Card(
- child: Padding(
- padding: const EdgeInsets.all(24),
- child: Column(
- mainAxisSize: MainAxisSize.min,
- children: [
- const CircularProgressIndicator(),
- if (message != null) ...[
- const SizedBox(height: 16),
- Text(message!),
- ],
- ],
- ),
- ),
- ),
- ),
- ),
- ],
- );
- }
- }
|