首页 > 解决方案 > Flutter,去除 FAB 缩放动画

问题描述

第一次加载页面时,FAB 默认总是做缩放动画的东西。

如何删除/禁用浮动操作按钮缩放动画

我已经做的是

return Scaffold(
      floatingActionButtonAnimator: AnimationNoScaling(),

...


import 'package:flutter/material.dart';

class AnimationNoScaling extends FloatingActionButtonAnimator{
  double? _x;
  double? _y;
  @override
  Offset getOffset({Offset? begin, Offset? end, double? progress}) {
    _x = begin!.dx +(end!.dx - begin.dx)*progress!;
    _y = begin.dy +(end.dy - begin.dy)*progress;
    return Offset(_x!,_y!);
  }

  @override
  Animation<double> getRotationAnimation({Animation<double>? parent}) {
    return Tween<double>(begin: 1.0, end: 1.0).animate(parent!);
  }

  @override
  Animation<double> getScaleAnimation({Animation<double>? parent}) {
    return Tween<double>(begin: 1.0, end: 1.0).animate(parent!);
  }
}

这不起作用上面的代码也来自其他问题

标签: flutterflutter-layoutflutter-animation

解决方案


实际上,当第一次加载页面时,FAB 没有动画。但是,如果您删除 FAB(通过设置: floatingActionButton: null)和/或将其带回,它会动画。如果您的业务逻辑允许,可能使用OffstageVisibility小部件来“隐藏”FAB 而不是删除它。这样,它会立即消失并立即出现。

另一种可能的解决方案是,您不必使用 FAB 小部件,您可以将任何小部件传递给属性,例如 an或其他任何东西,所以真的,一切皆有可能:DfloatingActionButtonIconButton


推荐阅读