[英]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.