Flutter,如何使用Get.off()在重定向屏幕时添加动画?

问题描述 投票:0回答:1

我有这行

Get.off(() => const AllergyConfigurationScreen());
,它重定向到另一个屏幕。是否可以通过集成
PageRouteBuilder
来添加动画?

preferences_controller.dart

case 0:
          // form validation
          if (!updateVeganFormKey.currentState!.validate()) {
            updateVeganFormKey.currentState!.save();
            return;
          }

          if (!updateDairyFormKey.currentState!.validate()) {
            updateDairyFormKey.currentState!.save();
            return;
          }

          Map<String, dynamic> Diet = {
            'Diet': {
              'IsVegan': isVegan.value,
              'IsDairyFree': isDairyFree.value,
            },
          };

          // Update the 'isVegan' field within the 'Diet' map
          Diet['Diet']['IsVegan'] = isVegan.value;
          Diet['Diet']['IsDairyFree'] = isDairyFree.value;

          // Create the data to update in Firestore
          Map<String, dynamic> dietData = {
            'Preferences': {
              'Allergy': {
                'IsEgg': userController.user.value.preferences['Allergy']
                    ?['IsEgg'],
                'IsNut': userController.user.value.preferences['Allergy']
                    ?['IsNut'],
              },
              'Diet': {
                'IsVegan': isVegan.value,
                'IsDairyFree': isDairyFree.value,
              },
            },
          };
          await userRepository.updateSingleField(dietData);

          // update the rx user value
          userController.user.value.preferences['IsVegan'] = isVegan.value;
          userController.user.update((user) {
            user?.preferences['Diet'] ??= {};
            user?.preferences['Diet']['IsVegan'] = isVegan.value;
          });

          userController.user.value.preferences['IsDairyFree'] =
              isDairyFree.value;
          userController.user.update((user) {
            user?.preferences['Diet'] ??= {};
            user?.preferences['Diet']['IsDairyFree'] = isDairyFree.value;
          });

          Get.off(() => const AllergyConfigurationScreen());
          break;

PageRouteBuilder()

PageRouteBuilder(
    pageBuilder: (context, animation, secondaryAnimation) => const AllergyConfigurationScreen(),
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      const begin = Offset(1.0, 0.0);
      const end = Offset.zero;
      const curve = Curves.ease;

      var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));

      return SlideTransition(
        position: animation.drive(tween),
        child: child,
      );
    },
  );
android flutter dart redirect get
1个回答
0
投票
  Get.off(()=>NewPage(),transition: Transition.downToUp);

您尝试过过渡属性吗?如果您发现这种过渡类型不合适,请随时将其更改为更适合您需求的过渡类型。

© www.soinside.com 2019 - 2024. All rights reserved.