import 'package:flutter/material.dart'; /// 骨架屏占位矩形。 /// /// 用法(配合 shimmer 包): /// ```dart /// Shimmer.fromColors( /// baseColor: Colors.grey[300]!, /// highlightColor: Colors.grey[100]!, /// child: SkeletonBox(width: double.infinity, height: 20), /// ) /// ``` class SkeletonBox extends StatelessWidget { const SkeletonBox({ super.key, this.width, this.height = 14, this.borderRadius = 6, }); final double? width; final double height; final double borderRadius; @override Widget build(BuildContext context) { return Container( width: width, height: height, decoration: BoxDecoration( color: Theme.of(context).colorScheme.surfaceContainerHighest, borderRadius: BorderRadius.circular(borderRadius), ), ); } } /// 骨架屏圆形(头像占位)。 class SkeletonCircle extends StatelessWidget { const SkeletonCircle({super.key, this.size = 40}); final double size; @override Widget build(BuildContext context) { return Container( width: size, height: size, decoration: BoxDecoration( color: Theme.of(context).colorScheme.surfaceContainerHighest, shape: BoxShape.circle, ), ); } }