我有这行
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,
);
},
);
Get.off(()=>NewPage(),transition: Transition.downToUp);
您尝试过过渡属性吗?如果您发现这种过渡类型不合适,请随时将其更改为更适合您需求的过渡类型。