flutter - 为什么这个 AnimatedSwitcher 不对变化进行动画处理?
问题描述
我正在尝试为文本设置动画以在两个值之间切换
AnimatedSwitcher(
duration: Duration(milliseconds: 400),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
(_smallTitle == true) ? Text('Text1/', style:TextStyle(fontSize: 12.0)) : Container(),
Text(
(_smallTitle == false) ? _largeHeaderText : _smallHeaderText,
),
],
),
),
当我触发“_smallTitle”布尔值的更改时,此代码确实成功切换了文本。但是变化根本没有动画
知道我做错了什么吗?
解决方案
主要工作AnimatedSwitcher
是在孩子之间制作动画。但在这种情况下,我们有一个相同的小部件 ( column
) 作为孩子。这就是为什么我们看不到动画。我们需要根据条件传递一个孩子。喜欢
AnimatedSwitcher(
duration: Duration(seconds: 4),
child: _smallTitle
? Column(
key: ValueKey("child1"), // provide key
mainAxisSize: MainAxisSize.min,
children: [
Text(
'Text1/',
style: TextStyle(fontSize: 12.0),
),
Text(
_smallHeaderText,
)
],
)
: Column(
children: [
Text(_largeHeaderText),
],
)),
但是我们可以用key
.
AnimatedSwitcher(
duration: Duration(milliseconds: 400),
child: Column(
key: ValueKey(_smallTitle ? "small child Key" : "largeChild key"),
crossAxisAlignment: CrossAxisAlignment.start,
children: [
(_smallTitle == true)
? Text('Text1/', style: TextStyle(fontSize: 12.0))
: Container(),
Text(
(_smallTitle == false) ? _largeHeaderText : _smallHeaderText,
),
],
),
),
单独
key
为孩子使用。
推荐阅读
- json - 来自包含双精度数字的 Json 帖子的错误 400(错误请求)
- django - Django-haystack & solr : 增加结果数
- python - UnicodeDecodeError:'utf-8'编解码器无法解码位置 0 的字节 0xff:django 中的无效起始字节
- python-3.x - 根据多列条件过滤熊猫数据框行
- java - 运行 Java 工件时显示 Unicode 字符的问题,但在 IntelliJ IDEA 中运行时一切正常
- jenkins - Jenkins声明性管道负载参数在前提条件下
- javascript - 防止删除 contenteditable div 中的第一段
- javascript - Asp.net Core 中的 ReadAsMultipartAsync
- excel - 将用户表单提交到 Access 数据库时自动增加字母数字字符串
- javascript - How do you make the same command but it will change according to the day