繁体   English   中英

颤动 TabBarView 的动画持续时间

[英]Animation duration of a flutter TabBarView

在 Flutter 中,我有以下问题。

我想控制 TabBarView 的动画速度(过渡持续时间)。 在 TabBar 单击期间,内容正文从左向右滑动。 我希望这是即时的。 非常类似于 Twitter 应用程序,其底部的主要 TabBar 图标。

有没有办法控制 TabVarView 的动画(持续时间)?

你不能用 TabBar 直接做到这一点! 您应该创建一个 CustomTab 并在其上添加一个“墨水池”。 您应该将墨水瓶的 onTap 参数设置为:

() = tabController.animateTo(0, duration: Duration(milliseconds: 0));'

所以它应该是这样的

Widget _buildTabItem({
  int index,
  ValueChanged<int> onPressed,
}) {
  return Expanded(
    child: Container(
      child: Material(
        type: MaterialType.transparency,
        child: InkWell(
          onTap: () => onPressed(index),
          child: Column(
            mainAxisSize: MainAxisSize.min,
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              /// Icon and text here
            ],
          ),
        ),
      ),
    ),
  );
}

您可以控制滚动动画的一般物理。

TabBarView(
  physics: CustomTabBarViewScrollPhysics(),
            

控制滚动行为:


class CustomTabBarViewScrollPhysics extends ScrollPhysics {
  const CustomTabBarViewScrollPhysics({ScrollPhysics? parent})
      : super(parent: parent);

  @override
  CustomTabBarViewScrollPhysics applyTo(ScrollPhysics? ancestor) {
    return CustomTabBarViewScrollPhysics(parent: buildParent(ancestor)!);
  }

  @override
  SpringDescription get spring => const SpringDescription(
        mass: 50,
        stiffness: 100,
        damping: 0.8,
      );
}

您还应该能够计算质量、刚度、阻尼的持续时间,但我相信这些选项更适合您的问题。 来源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM