diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index c6a00c4..433fdcf 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -5,7 +5,6 @@ import '../services/webdav_service.dart'; import '../widgets/magnetic_scroll_physics.dart'; import 'webdav_setup_page.dart'; import 'settings_page.dart'; -import 'playlists_page.dart'; import '../database/song_database.dart'; import '../models/playlist_summary.dart'; import '../repositories/playlist_repository.dart'; @@ -656,13 +655,17 @@ class _HomePageState extends BaseState { _isLoading = false; }); if (mounted) { - // ⭐ 修复:用 push 保留 HomePage 在栈底 - Navigator.push( + // 用 push 保留 HomePage 在栈底;登录成功后 Setup 会 popUntil 回到这里 + await Navigator.push( context, MaterialPageRoute( builder: (_) => const WebDAVSetupPage(), ), ); + if (mounted) { + await _initWebDAV(); + safeSetState(() {}); + } } }, child: const Text( diff --git a/lib/pages/webdav_setup_page.dart b/lib/pages/webdav_setup_page.dart index 8c1d29d..d57017a 100644 --- a/lib/pages/webdav_setup_page.dart +++ b/lib/pages/webdav_setup_page.dart @@ -1,6 +1,5 @@ import 'package:flutter/material.dart'; import '../services/webdav_service.dart'; -import 'webdav_file_list_page.dart'; import '../base/base_state.dart'; class WebDAVSetupPage extends StatefulWidget { @@ -72,14 +71,10 @@ class _WebDAVSetupPageState extends BaseState { backgroundColor: Color(0xFF4CAF50), ), ); - // ⭐ 用 pushReplacement 替换当前页面(WebDAVSetupPage) - // 此时栈底是 HomePage,替换后栈变为 [HomePage, WebDAVFileListPage] - Navigator.pushReplacement( - context, - MaterialPageRoute( - builder: (_) => const WebDAVFileListPage(), - ), - ); + // 登录成功后直接回到主页: + // - 首次配置:用户配完先进主页,再自己点 WebDAV 进入文件列表 + // - 重新登录:从主页 push 进来,直接回主页,不会停在文件列表 + Navigator.of(context).popUntil((route) => route.isFirst); } } catch (e) { safeSetState(() {