From 8548eeea7bd778766b655ba7f0ee403ae259b548 Mon Sep 17 00:00:00 2001 From: ngfchl Date: Sun, 19 Jul 2026 00:16:27 +0800 Subject: [PATCH] adapt media library dialogs to mobile viewports --- lib/pages/media_library_page.dart | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/lib/pages/media_library_page.dart b/lib/pages/media_library_page.dart index b78c00f..15892e0 100644 --- a/lib/pages/media_library_page.dart +++ b/lib/pages/media_library_page.dart @@ -1176,8 +1176,12 @@ class _MediaLibraryPageState extends ConsumerState { ), ], child: SizedBox( - width: 620, - height: 360, + width: (MediaQuery.sizeOf(dialogContext).width - 32) + .clamp(280.0, 620.0) + .toDouble(), + height: (MediaQuery.sizeOf(dialogContext).height - 260) + .clamp(240.0, 360.0) + .toDouble(), child: ListView.separated( itemCount: backups.length, separatorBuilder: (_, _) => const Divider(height: 1), @@ -1578,8 +1582,11 @@ class _CreateMediaLibraryDialogState } Widget _form(ShadColorScheme cs) { + final width = (MediaQuery.sizeOf(context).width - 32) + .clamp(280.0, 520.0) + .toDouble(); return SizedBox( - width: 520, + width: width, child: Column( mainAxisSize: MainAxisSize.min, children: [ @@ -1709,9 +1716,10 @@ class _CreateMediaLibraryDialogState } Widget _folderBrowser(ShadColorScheme cs) { + final size = MediaQuery.sizeOf(context); return SizedBox( - width: 560, - height: 390, + width: (size.width - 32).clamp(280.0, 560.0).toDouble(), + height: (size.height - 250).clamp(280.0, 390.0).toDouble(), child: Column( children: [ Container( @@ -3130,6 +3138,7 @@ class _ManualTMDBMatchDialogState @override Widget build(BuildContext context) { final cs = ShadTheme.of(context).colorScheme; + final viewport = MediaQuery.sizeOf(context); return ShadDialog( title: const Text('手动匹配 TMDB'), description: const Text('选择一个结果后,会应用到该作品的全部资源版本。'), @@ -3145,8 +3154,8 @@ class _ManualTMDBMatchDialogState ), ], child: SizedBox( - width: 620, - height: 560, + width: (viewport.width - 32).clamp(280.0, 620.0).toDouble(), + height: (viewport.height - 210).clamp(340.0, 560.0).toDouble(), child: Column( children: [ _manualMatchField(