动画效果美化

This commit is contained in:
DelLevin-Home
2026-05-23 17:25:48 +08:00
parent c6ba9da0ab
commit 254ddd8970
17 changed files with 1911 additions and 1073 deletions

View File

@@ -7,85 +7,62 @@ import '../pages/movies/movie_detail_page.dart';
import '../pages/book/book_detail_page.dart';
import '../pages/note/note_detail_page.dart';
import '../pages/movies/douban_webview_page.dart';
import 'slide_up_page_route.dart';
/// 路由生成器
class AppRouter {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case '/movie-form':
// 处理不同参数类型Movie 对象或 Map包含 initialStatus
final args = settings.arguments;
Movie? movie;
String? initialStatus;
if (args is Movie) {
movie = args;
} else if (args is Map<String, dynamic>) {
initialStatus = args['initialStatus'] as String?;
}
return MaterialPageRoute(
builder: (_) => MovieFormPage(
movie: movie,
initialStatus: initialStatus,
),
return SlideUpPageRoute(
page: MovieFormPage(movie: movie, initialStatus: initialStatus),
);
case '/book-form':
// 处理不同参数类型Book 对象或 Map包含 initialStatus
final args = settings.arguments;
Book? book;
String? initialStatus;
if (args is Book) {
book = args;
} else if (args is Map<String, dynamic>) {
initialStatus = args['initialStatus'] as String?;
}
return MaterialPageRoute(
builder: (_) => BookFormPage(
book: book,
initialStatus: initialStatus,
),
return SlideUpPageRoute(
page: BookFormPage(book: book, initialStatus: initialStatus),
);
case '/note-form':
final note = settings.arguments as Note?;
return MaterialPageRoute(
builder: (_) => NoteFormPage(note: note),
);
return SlideUpPageRoute(page: NoteFormPage(note: note));
case '/movie-detail':
final movie = settings.arguments as Movie;
return MaterialPageRoute(
builder: (_) => MovieDetailPage(movie: movie),
);
return SlideUpPageRoute(page: MovieDetailPage(movie: movie));
case '/book-detail':
final book = settings.arguments as Book;
return MaterialPageRoute(
builder: (_) => BookDetailPage(book: book),
);
return SlideUpPageRoute(page: BookDetailPage(book: book));
case '/note-detail':
final note = settings.arguments as Note;
return MaterialPageRoute(
builder: (_) => NoteDetailPage(note: note),
);
return SlideUpPageRoute(page: NoteDetailPage(note: note));
case '/douban-webview':
final url = settings.arguments as String;
return MaterialPageRoute(
builder: (_) => DoubanWebViewPage(url: url),
);
return SlideUpPageRoute(page: DoubanWebViewPage(url: url));
default:
return MaterialPageRoute(
builder: (_) => Scaffold(
body: Center(
child: Text('未找到页面:${settings.name}'),
),
body: Center(child: Text('未找到页面:${settings.name}')),
),
);
}