You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SizeTransition实现PageRouteBuilder路由动画无效果求助

问题解决:SizeTransition路由动画无表现的修复

你的代码核心问题是参数设置不符合期望的动画逻辑,导致视觉上没有呈现出预期的底部向上展开效果。以下是修改后的代码及关键说明:

Navigator.push(
  context,
  PageRouteBuilder(
    transitionDuration: Duration(seconds: 2),
    transitionsBuilder: (context, animation, secondaryAnimation, child) {
      return SizeTransition(
        sizeFactor: animation,
        axis: Axis.vertical,
        axisAlignment: 1.0, // 从底部开始向上展开
        clipBehavior: Clip.hardEdge, // 裁剪溢出内容,避免提前显示未展开区域
        child: child,
      );
    },
    pageBuilder: (context, animation, secondaryAnimation) {
      return CreateUpdateNoteView();
    },
    settings: RouteSettings(arguments: note),
  ),
);

关键修改点:

  • axisAlignment: 1.0:垂直方向下,1.0代表子组件底部与父容器底部对齐,当sizeFactor从0到1过渡时,页面会从底部向上逐步展开,完全匹配你期望的动画效果。
  • clipBehavior: Clip.hardEdge:限制页面内容仅在当前展开的区域内显示,避免未完全展开的部分提前溢出到屏幕可视范围外。

同时确保CreateUpdateNoteView的根组件(如Scaffold)未设置固定尺寸约束,让SizeTransition能正确控制其尺寸变化。

内容的提问来源于stack exchange,提问作者Sunken In Time

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 01:09:18