diff --git a/lib/constants/ui_constants.dart b/lib/constants/ui_constants.dart new file mode 100644 index 0000000..c87bf3d --- /dev/null +++ b/lib/constants/ui_constants.dart @@ -0,0 +1,5 @@ +// lib/constants/ui_constants.dart +class UIConstants { + static const double miniPlayerHeight = 60; + static const double miniPlayerBottomSpace = 80; // 60 + 20 安全余量 +} diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 7b3cc5f..e6a3b53 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -6,6 +6,7 @@ import '../services/playback_service.dart'; import '../widgets/magnetic_scroll_physics.dart'; import 'webdav_setup_page.dart'; import 'webdav_file_list_page.dart'; +import '../constants/ui_constants.dart'; // ================================================== // 歌曲数据模型 @@ -553,7 +554,7 @@ class _HomePageState extends State { padding: const EdgeInsets.only( left: 20, right: 20, - bottom: 20, + bottom: UIConstants.miniPlayerBottomSpace, ), sliver: _isLoading ? const SliverFillRemaining( diff --git a/lib/pages/playlist_page.dart b/lib/pages/playlist_page.dart index 90d1a2b..aac044f 100644 --- a/lib/pages/playlist_page.dart +++ b/lib/pages/playlist_page.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../services/audio_service.dart'; +import '../constants/ui_constants.dart'; class PlaylistPage extends StatelessWidget { const PlaylistPage({super.key}); @@ -83,7 +84,12 @@ class PlaylistPage extends StatelessWidget { ), ) : ListView.builder( - padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + padding: const EdgeInsets.only( + left: 16, + right: 16, + top: 8, + bottom: UIConstants.miniPlayerBottomSpace, + ), itemCount: queue.length, itemBuilder: (context, index) { final song = queue[index]; diff --git a/lib/pages/webdav_file_list_page.dart b/lib/pages/webdav_file_list_page.dart index a3ce3ed..50c7cbd 100644 --- a/lib/pages/webdav_file_list_page.dart +++ b/lib/pages/webdav_file_list_page.dart @@ -6,6 +6,7 @@ import 'package:provider/provider.dart'; import '../services/webdav_service.dart'; import '../services/playback_service.dart'; import '../services/audio_service.dart'; +import '../constants/ui_constants.dart'; class WebDAVFileListPage extends StatefulWidget { final String currentPath; @@ -315,8 +316,12 @@ class _WebDAVFileListPageState extends State { ), ) : ListView.builder( - padding: const EdgeInsets.symmetric( - horizontal: 16, vertical: 8), + padding: const EdgeInsets.only( + left: 16, + right: 16, + top: 8, + bottom: UIConstants.miniPlayerBottomSpace, + ), itemCount: _items.length, itemBuilder: (context, index) { final item = _items[index];