user_onboarding_view.dart
1.15 KB
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../controllers/user_onboarding_controller.dart';
import '../widget/guide_common_scaffold.dart';
import '../widget/onboarding_common_widgets.dart';
import 'user_onboarding_pages.dart';
class UserOnboardingView extends GetView<UserOnboardingController> {
const UserOnboardingView({super.key});
@override
Widget build(BuildContext context) {
final pages = buildUserOnboardingPages(context, argument: Get.arguments);
return Obx(() {
final pageIndex = controller.currentPageIndex.value;
// 订阅选项变化,刷新底部按钮 enabled 状态
final _ = controller.selectionVersion.value;
final page = pages[pageIndex.clamp(0, pages.length - 1)];
return GuideCommonScaffold(
onBackPressed: controller.goBack,
bottom: OnboardingBottomButton(
label: userOnboardingButtonLabel(context, pageIndex),
enabled: controller.canContinue(pageIndex),
onPressed: () => controller.goNext(),
),
child: KeyedSubtree(
key: ValueKey(pageIndex),
child: page,
),
);
});
}
}