import 'package:flutter/material.dart'; class SkeletonLoading extends StatelessWidget { const SkeletonLoading({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Column( children: [ // 요약 카드 스켈레톤 Card( margin: const EdgeInsets.all(16), child: Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( width: 100, height: 24, color: Colors.grey[300], ), const SizedBox(height: 16), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ _buildSkeletonColumn(), _buildSkeletonColumn(), ], ), ], ), ), ), // 구독 목록 스켈레톤 Expanded( child: ListView.builder( itemCount: 5, itemBuilder: (context, index) { return Card( margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), child: ListTile( contentPadding: const EdgeInsets.all(16), title: Container( width: 200, height: 24, color: Colors.grey[300], ), subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const SizedBox(height: 8), Container( width: 150, height: 16, color: Colors.grey[300], ), const SizedBox(height: 4), Container( width: 180, height: 16, color: Colors.grey[300], ), ], ), ), ); }, ), ), ], ); } Widget _buildSkeletonColumn() { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( width: 80, height: 16, color: Colors.grey[300], ), const SizedBox(height: 4), Container( width: 100, height: 24, color: Colors.grey[300], ), ], ); } }