flutter - 无动画转移页面 | Navigator.of(context).pushNamed()
问题描述
我正在为网络使用颤振。页面正在转换Navigator.of(context).pushNamed(Home.route);
,但此时播放动画。是否可以禁用此动画?
main()
我在函数中写了如下代码main.dart
。
MaterialApp(
initialRoute: '/home',
routes: {
'/home': (context) => Home(),
'/profile': (context) => Profile(),
},
@immutable
class Home extends StatelessWidget {
static const String route = '/home';
....
}
@immutable
class Profile extends StatelessWidget {
static const String route = '/profile';
....
}
正如我之前提到的,以下代码用于转换页面。
Navigator.of(context).pushNamed(Home.route);
我可以通过使用来转换没有动画的页面Navigator.push
,但我想使用,Navigator.of(context).pushNamed()
因为链接没有改变。
有谁知道如何在仍在使用时禁用动画Navigator.of(context).pushNamed()
?谢谢你。
解决方案
我解决了这个问题。
我没有使用Navigator.of().pushNamed()
,但是可以显示页面的 URL。
首先,我像这样删除routes:
并MaterialApp()
添加onGenerateRoute:
;
onGenerateRoute: (settings) {
Widget wid = Home();
switch (settings.name) {
case "/home":
wid = Home();
break;
case "/profile":
wid = Profile();
break;
}
if (wid != null) {
return PageRouteBuilder(
settings:
settings, // Pass this to make popUntil(), pushNamedAndRemoveUntil(), works
pageBuilder: (_, __, ___) => wid,
transitionsBuilder: (_, a, __, c) =>
FadeTransition(opacity: a, child: c));
}
// Unknown route
return MaterialPageRoute(builder: (_) => Home());
},
当你想移动页面时,只需调用它;
Navigator.of(context).pushReplacementNamed('/home');
推荐阅读
- jenkins - 从正在运行的构建中读取 consoleText URL 仅返回前 10000 行
- rest - 如何使用邮递员的 github api
- function - 根据出生日期设置年龄组
- javascript - 如何使用 Ifs 编写此函数以具有相应的 else 语句
- c++ - 在数据库程序中实现一个类
- android - 为什么图像显示为浅灰色背景,当它有白色 android 时?
- xml - 用于项目符号点元素的 XSLT 动态标记插入
- java - jTextField(NetBeans) - CTRL+V 绕过 Character.isAlphabetic 事件规则
- c - 在 linux c 中使用已知 key_t 查找 msqid
- selenium - 如何在机器人框架中获得文本溢出的css样式