Итак, я поиграл с Hero
анимациями и хотел использовать для них собственную кривую. Я легко реализовал это, используя createRectTween
при создании экземпляра Hero
виджета. Но я хочу установить пользовательскую кривую для каждого виджета Hero без нашего подкласса.
Итак, я покопался в heroes.dart
и обнаружил, что HeroController
используется по умолчанию для переходов героев, и что он устанавливается в _MaterialAppState
как частная переменная. Есть ли способ переопределить контроллер героя в виджете MaterialApp
, или мне нужно просто создать подкласс виджета Hero
/ не использовать MaterialApp
?
Моя идея состояла в том, чтобы просто использовать что-то вроде:
final NavigatorObserver heroNavigatorObserver = HeroController(
createRectTween: (begin, end) {
return CustomCurveRectTween(
a: begin, b: end, curve: Curves.bounceInOut);
},
);
MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
brightness: Brightness.dark,
primarySwatch: Colors.blueGrey,
backgroundColor: Colors.blueGrey,
splashColor: Colors.blueGrey,
),
navigatorObservers: [heroNavigatorObserver],
home: SplashPage(),
)
Редактировать : CustomCurveRectTween
- моя собственная реализация RectTween