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毫秒