Android 颤振更改页面在主题中的转换速度/持续时间 如何更改应用程序主题中设置的过渡持续时间/速度?

Android 颤振更改页面在主题中的转换速度/持续时间 如何更改应用程序主题中设置的过渡持续时间/速度?,android,ios,flutter,flutter-animation,flutter-theme,Android,Ios,Flutter,Flutter Animation,Flutter Theme,我可以使用MaterialApp的主题更改过渡动画。下面的示例将默认转换替换为FadeTransition。当使用淡入淡出过渡时,感觉很慢,我不知道如何更改主题中设置的过渡持续时间 导入“包装:颤振/材料.省道”; void main(){ runApp(MyApp()); } 最终主题数据=主题数据( pageTransitionsTheme:pageTransitionsTheme(生成器:{ TargetPlatform.iOS:FadeTransitionBuilder(), Targe

我可以使用
MaterialApp
的主题更改过渡动画。下面的示例将默认转换替换为
FadeTransition
。当使用淡入淡出过渡时,感觉很慢,我不知道如何更改主题中设置的过渡持续时间

导入“包装:颤振/材料.省道”;
void main(){
runApp(MyApp());
}
最终主题数据=主题数据(
pageTransitionsTheme:pageTransitionsTheme(生成器:{
TargetPlatform.iOS:FadeTransitionBuilder(),
TargetPlatform.android:FadeTransitionBuilder(),
}),
);
类FadeTransitionBuilder扩展了PageTransitionBuilder{
@凌驾
Widget buildTransitions(u、u、动画、u、子项)=>FadeTransition(不透明度:动画,子项:子项);
}
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类_MyAppState使用WidgetsBindingObserver扩展状态{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:"流动",,
主题:主题数据,
initialRoute:“/”,
路线:路线,,
);
}
}

我可以使用命名路由来实现这一点,您需要在自己提供给MaterialApp builder的Navigator实例中列出这些命名路由。 必须删除MaterialApp的initialRoute属性

class _MyAppState extends State<MyApp> with WidgetsBindingObserver {

  Route<dynamic> generateRoute(RouteSettings settings) {
    switch (settings.name) {
      case '/about':
        return CustomPageRoute(
            builder: (context) => About());
      default:
        return CustomPageRoute(
            builder: (context) => Home());
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Mobile',
      theme: themeData,
      builder: (context, widget) {
        return Navigator(
          onGenerateRoute: generateRoute,
        );
      },
    );
  }
}

class CustomPageRoute extends MaterialPageRoute {
  @override
  Duration get transitionDuration => const Duration(milliseconds: 1000);

  CustomPageRoute({builder}) : super(builder: builder);
}
class\u MyAppState使用WidgetsBindingObserver扩展状态{
路由生成器输出(路由设置设置){
开关(设置.名称){
案例“/关于”:
返回CustomPageRoute(
生成器:(上下文)=>About());
违约:
返回CustomPageRoute(
生成器:(上下文)=>Home());
}
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:"流动",,
主题:主题数据,
生成器:(上下文,小部件){
返回导航器(
onGenerateRoute:generateRoute,
);
},
);
}
}
类CustomPageRoute扩展了MaterialPageRoute{
@凌驾
Duration get transitionDuration=>const Duration(毫秒:1000);
CustomPageRoute({builder}):超级(builder:builder);
}
创建此类:

类MyRoute扩展了MaterialPage路由{
MyRoute({WidgetBuilder}):超级(builder:builder);
@凌驾
持续时间获取转换持续时间=>持续时间(秒:3);
}
现在,用常规的

Navigator.push(上下文,materialpage路径(生成器:()=>Page2());
使用

Navigator.push(上下文,MyRoute(builder:(\u)=>Page2());

在颤振源代码中,这看起来像是硬编码为300毫秒