如何调整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
相关产品推荐
相关产品推荐

