使用 fluro 的转场动画提高页面切换体验

简介: fluro 提供了滑入、渐现、全屏对话框、原生等多种转场动画形式,同时还支持自定义转场动画。借助转场动画可以提高用户体验。

上一篇[Flutter 高赞的路由管理插件 fluro 简介
](https://developer.aliyun.com/article/985415)介绍了fluro 路由管理的基本使用。在实际应用中,我们常常会对不同的页面采取不同的转场动画,以提高页面切换过程中的用户体验。举个例子,微信的扫码后在手机上确认登录页面就是从底部弹出的,而大部分页面的跳转都是从右向左滑入。通过这种形式区分不同的转场场景,从而给用户更多的趣味性以提高用户体验。

在 fluro 中,定义路由处理器 Handler 时可以指定该页面的默认转场形式,或者在使用 navigateTo 方法是可以设置页面跳转transition参数来设定个性化的转场形式。本篇演示了fluro 内置的转场动画,效果如下图所示。

屏幕录制2021-06-17 下午9.08.55.gif

转场形式

fluro 的转场形式通过 TransitionType枚举定义,如下所示:

enum TransitionType {
  native, //原生形式,和原生的保持一致,默认
  nativeModal, //原生模态跳转
  inFromLeft,  //从左滑入
  inFromTop,   //从顶部滑入
  inFromRight, //从右滑入
  inFromBottom,//从底部滑入
  fadeIn,      //渐现
  custom,      //自定义,需要配合 transitionBuilder 使用
  material,    //安卓风格跳转
  materialFullScreenDialog, //安卓风格全屏对话框(左上角带有关闭按钮)
  cupertino,   //iOS 风格跳转
  cupertinoFullScreenDialog,//iOS风格全屏对话框(左上角带有关闭按钮)
  none,                 //无转场动画
}

设定页面默认转场方式

在定义 Handler 时,可以指定转场动画的 transition,如下所示:

//...
router.define(transitionPath,
  handler: transitionHandler,
  transitionType: TransitionType.inFromBottom);
//...

这个时候,如果在 navigateTo 方法没有指定转场动画,则会使用路由预先定义的方式进行转场。

跳转时指定转场方式

FluroRouter 的 navigateTo 方法可以显示指定 转场动画类型,只需要在 transition 参数指定对应的枚举值即可,示例代码如下:

RouterManager.router.navigateTo(
  context, RouterManager.transitionPath,
  transition: TransitionType.inFromRight);

如果想要控制转场动画的时间,可以设置transitionDuration参数,transitionDuration是一个 Duration 对象。考虑用户等待时间和体验,一般转场动画建议在200-300毫秒之间。示例代码如下:

RouterManager.router.navigateTo(
  context, RouterManager.transitionPath,
  transition: TransitionType.fadeIn,
  transitionDuration: Duration(milliseconds: 1000));

总结

可以看到,fluro 自身提供的预设动画已经能够满足绝大多数场景的使用了,建议是如果页面的出现形式是固定的,可以在定义路由时指定,从而避免每一处跳转都需要设定 transition 参数。如果还需要其他转场动画,可以使用 transitionBuilder 来构建,下一篇我们介绍如何构建自定义的转场动画。


欢迎关注个人公众号:岛上码农

相关文章
|
5月前
|
前端开发 UED
触屏新体验:CSS动画让移动端底部导航活起来!
触屏新体验:CSS动画让移动端底部导航活起来!
|
8月前
|
前端开发
Flutter笔记:光影动画按钮、滚动图标卡片组等
Flutter笔记:光影动画按钮、滚动图标卡片组等
94 0
|
8月前
|
开发者
Flutter笔记:拖拽手势
Flutter笔记:拖拽手势
98 0
|
JavaScript
原生js做无限弹窗(娱乐)
原生js做无限弹窗(娱乐)
98 0
|
JSON Android开发 数据格式
原生app开发技巧——底部导航栏动画效果按钮制作方法之采用photoshop制作gif动画-过渡动画关键帧
原生app开发技巧——底部导航栏动画效果按钮制作方法之采用photoshop制作gif动画-过渡动画关键帧
|
XML API Android开发
酷炫的Activity切换动画,打造更好的用户体验
酷炫的Activity切换动画,打造更好的用户体验
酷炫的Activity切换动画,打造更好的用户体验
|
搜索推荐
Flutter 使用自定义转场动效提升页面跳转体验
本篇带你如何完成个性化的页面切换。Flutter本身提供了不少预定义的转场动画,可以设计多种多样的转场动画实现个性化的转场效果。
801 0
Flutter 使用自定义转场动效提升页面跳转体验
在带有背景图像的Flutter中拉动以刷新
本文主要介绍在带有背景图像的Flutter中拉动以刷新 拉动刷新”是显示动态数据列表的移动应用程序的常见任务。今天我们将使用 pull_to_refresh 包实现 pull to refresh 并利用 Slivers 创建一个自定义的 Collapsible 标头
328 0
|
vr&ar 图形学
【Unity3D 灵巧小知识点】☀️ | Unity UGUI组件Scroll View禁止 左右 或 上下 滑动
Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。 Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
【Unity3D 灵巧小知识点】☀️ | Unity UGUI组件Scroll View禁止 左右 或 上下 滑动
|
Java
AnimationDrawable监听播放结束及ImageSwitcher动画图片切换,带动画
//java代码动态加载动画 或者res/anim/中加载
355 0