flutter - 如何在颤动中为一个小部件应用两个补间?
问题描述
所以我有一个容器,我想把它从0
to缩放1.1
到1.0
so 1.1
to 1.0
。
我尝试附加两个补间,但它产生了奇怪的结果。容器已经缩放到1.0
,然后它开始从1.1
到动画1.0
。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin {
late AnimationController _scale;
late Animation<double> _scaleAnimation;
@override
void initState() {
_scale = AnimationController(
vsync: this, duration: const Duration(milliseconds: 1000));
_scaleAnimation = _scale
.drive(CurveTween(curve: Curves.ease))
.drive(Tween<double>(begin: 0.0, end: 1.0))
.drive(Tween<double>(begin: 1.0, end: 1.1));
_scale.forward();
super.initState();
}
@override
void dispose() {
_scale.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ScaleTransition(
scale: _scaleAnimation,
child: Container(
height: 100,
width: 100,
color: Colors.red
),
),
),
);
}
}
解决方案
您可以使用TweenSequence
_scaleAnimation = TweenSequence(
<TweenSequenceItem<double>>[
TweenSequenceItem<double>(
tween:
Tween(begin: 0.0, end: 1.1).chain(CurveTween(curve: Curves.ease)),
weight: 50.0,
),
TweenSequenceItem<double>(
tween:
Tween(begin: 1.1, end: 1.0).chain(CurveTween(curve: Curves.ease)),
weight: 50.0,
),
],
).animate(_scale);
推荐阅读
- android - Lcom/google/android/libraries/maps/R$string 类中没有类型 I 的静态字段 MAP_COPYRIGHTS_FULL;或其超类
- android - 自定义 Azure AD B2C 的登录流程 - 无需用户/密码即可使用
- c# - 我在 HTML 页面上从 GenericIdentity 转换为 FormsIdentity 时遇到问题
- django - urlconfig - 它采用默认参数,而不是传递参数
- android - 无法解析方法 'setTorchMode(java.lang.String, boolean)'
- javascript - 如何组合两个对象数组并删除在 IE11 中兼容的 javascript 中的重复对象
- react-native - 无法解析配置 ':react-native-svg:classpath' 的所有文件
- watson-knowledge-catalog - 分析 PDF 时是否有大小限制?
- c# - 检查从 Active Directory 加载的值是否为空
- ios - 无法将数据转换为字典