欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > 设置路由切换效果与传参

设置路由切换效果与传参

2024/10/22 21:46:33 来源:https://blog.csdn.net/weixin_43647163/article/details/141724666  浏览:    关键词:设置路由切换效果与传参

设置 ios 与 Android 路由由右到左切换过程与动画效果

设置路由方向与动画

PageRouteBuilder _createPageRoute(Widget page,) {return PageRouteBuilder(pageBuilder: (context, animation, secondaryAnimation) {return page;},transitionsBuilder: (context, animation, secondaryAnimation, child) {var begin = const Offset(1.0, 0.0); // 页面从右侧开始var end = Offset.zero; // 页面结束位置在屏幕中心var curve = Curves.easeOut; // 动画曲线var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));return SlideTransition(position: animation.drive(tween),child: child,);},);}

跳转方法

routeName 路由名称
arguments 是否需要传递参数

void navigateTo(BuildContext context, String routeName, [dynamic arguments]) {Navigator.pushNamed(context, routeName, arguments: arguments);
}

页面跳转是否传参

Center(child: Column(mainAxisAlignment: MainAxisAlignment.center,children: <Widget>[OutlinedButton(onPressed: (){navigateTo(context, '/deviceList' );},child: const Text('页面不需要传参实例'),),OutlinedButton(onPressed: (){navigateTo(context, '/detail',   {'title': '虹浪漫','message': '78号',},);},child: const Text('页面传参实例'),)],),
)

监听路由变化与传参

settings.arguments 获取页面跳转时设置的参数,并传递到下一个页面

MaterialApp(title: 'Flutter Demo',theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),useMaterial3: true,),onGenerateRoute: (settings) {switch (settings.name) {case '/detail':final args = settings.arguments;return _createPageRoute(const Detail(args:args!,));case '/deviceList':return  _createPageRoute( DeviceList());default:return null;}},home: const MyHomePage(title: 'Flutter Demo Home Page'),
)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com