2

我读了这个参考

https://api.flutter.dev/flutter/material/showModalBottomSheet.html

它说“可以传入transitionAnimationController参数以自定义模态底部工作表的外观和行为。如果提供,则transitionAnimationController控制底部工作表的入口和退出动画。”

但是,我找不到任何关于 transitionAnimationController 的参考,

所以我的问题是,如何使用 transitionAnimationController 调整 ModalBottomSheet 动画(我要调整的入口和出口速度)?

谢谢你。

4

1 回答 1

3

如果您使用 StatefulWidget 添加with TickerProviderStateMixin并创建一个AnimationControllerwith BottomSheet.createAnimationController(this). 然后您可以duration在 AnimationController 上设置 。在此示例中,我将持续时间设置为 3 秒。

确保将 AnimationController 放置在void dispose ()

class MyModalBottomButton extends StatefulWidget {
  @override
  _MyModalBottomButtonState createState() => _MyModalBottomButtonState();
}

class _MyModalBottomButtonState extends State<MyModalBottomButton>
    with TickerProviderStateMixin {
  AnimationController controller;

  @override
  initState() {
    super.initState();
    controller =
        BottomSheet.createAnimationController(this);
    controller.duration = Duration(seconds: 3);
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return TextButton(
      child: Text("Show bottom sheet"),
      onPressed: () => showModalBottomSheet(
        context: context,
        transitionAnimationController: controller,
        builder: (context) {
          return Container(
            child: Text("Your bottom sheet"),
          );
        },
      ),
    );
  }
}
于 2021-03-17T00:32:04.040 回答