合并代买

This commit is contained in:
chenshuainan
2026-09-09 16:12:59 +08:00
parent 44fb5f86e2
commit 592e576319
7 changed files with 1227 additions and 332 deletions
+32 -4
View File
@@ -1,7 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:go_router/go_router.dart';
import 'package:new_learn/core/components/video_player_page.dart';
import 'package:new_learn/features/auth/login_page.dart';
import 'package:new_learn/features/conquerPackage/captureList/index.dart';
import 'package:new_learn/pages/demo/align_demo.dart';
import 'package:new_learn/pages/demo/animation_demo.dart';
import 'package:new_learn/pages/demo/form_demo.dart';
@@ -228,6 +230,21 @@ class TaskPage extends StatelessWidget {
Icons.description_outlined,
_page(ExamDemoPage.new),
),
_DemoItem(
'攻克列表',
'课程攻克包列表 + 进度条 + 展开详情(go_router 跳转 + extra 传参)',
Icons.emoji_events_outlined,
_page(() => const Scaffold()),
onTap: (context) {
// 延时到当前帧结束后再导航,避免 build 过程中触发 Router rebuild
WidgetsBinding.instance.addPostFrameCallback((_) {
if (context.mounted) {
context.push('/conquerPackage/captureList',
extra: '841985856751366');
}
});
},
),
];
@override
@@ -278,9 +295,13 @@ class TaskPage extends StatelessWidget {
),
// 点击 → 路由跳转到对应 Demo 页面
onTap: () {
Navigator.of(context).push(
MaterialPageRoute(builder: demo.builder),
);
if (demo.onTap != null) {
demo.onTap!(context);
} else {
Navigator.of(context).push(
MaterialPageRoute(builder: demo.builder),
);
}
},
),
);
@@ -308,10 +329,17 @@ WidgetBuilder _page(Widget Function() create) {
/// Demo 列表项数据模型
class _DemoItem {
const _DemoItem(this.title, this.subtitle, this.icon, this.builder);
const _DemoItem(
this.title,
this.subtitle,
this.icon,
this.builder, {
this.onTap,
});
final String title;
final String subtitle;
final IconData icon;
final WidgetBuilder builder;
final void Function(BuildContext context)? onTap;
}