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

如何调整Rive动画尺寸?已尝试多种容器控件仍无效

解决Rive动画组件尺寸无法缩小的问题

以下是几个可行的解决思路,你可以逐一尝试:

1. 调整Rive动画的fit与alignment参数

你当前使用的BoxFit.scaleDown仅会在动画尺寸超过容器时缩小,若原动画画布本身远大于50x50,缩放量可能达不到预期。换成BoxFit.contain并配合居中对齐,能确保动画完全适配容器尺寸:

const SizedBox(
  height: 50,
  width: 50,
  child: RiveAnimation.asset(
    'assets/rave/rotating-crown.riv',
    fit: BoxFit.contain,
    alignment: Alignment.center,
  ),
),

2. 正确使用FittedBox包裹

之前的FittedBox用法可能有误,正确方式是让FittedBox作为RiveAnimation的直接父组件,再用SizedBox限制整体尺寸:

const SizedBox(
  height: 50,
  width: 50,
  child: FittedBox(
    fit: BoxFit.contain,
    child: RiveAnimation.asset('assets/rave/rotating-crown.riv'),
  ),
),

3. 修改Rive源文件的画布尺寸

这是最彻底的解决方法:打开Rive编辑器,选中动画画布,在右侧属性面板将Canvas Size调整为50x50(或你需要的加载指示器尺寸),重新导出.riv文件后,无需额外控件包裹就能直接得到合适大小的动画。

4. 代码中手动调整Artboard尺寸

如果无法修改源文件,可以通过onInit回调手动设置Artboard的尺寸:

SizedBox(
  height: 50,
  width: 50,
  child: RiveAnimation.asset(
    'assets/rave/rotating-crown.riv',
    onInit: (artboard) {
      artboard.size = const Size(50, 50);
    },
    fit: BoxFit.contain,
  ),
),

内容的提问来源于stack exchange,提问作者hiwa jalal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:55:19