flutter - 如何在颤动中为 RichText 小部件的 maxlines 属性设置动画
问题描述
我正在制作一个能够呈现 html 和 css 的可扩展文本视图。我已经搞定了。但现在我不知道如何动画小部件扩展。
我通过设置状态来扩展小部件_maxLines
return Column(
children: <Widget>[
RichText(
overflow: TextOverflow.ellipsis,
maxLines: _maxLines,
text: HTML.toTextSpan(context,
widget.htmlContent),
),
FlatButton(
child: Text(_buttonText),
onPressed: () {
setState(() {
if(_maxLines == 5){
setState(() {
_maxLines = 15;
});
}
});
},
)
],
);
解决方案
您可以使用AnimatedCrossFade
小部件在两个视图之间切换。
GestureDetector(
onTap: () => {setState(() => _showFullText = !_showFullText)},
child: AnimatedCrossFade(
duration: Duration(milliseconds: 200),
crossFadeState: _showFullText ? CrossFadeState.showFirst : CrossFadeState.showSecond,
firstChild: Text(
text,
),
secondChild: Text(
text,
maxLines: 2,
overflow: TextOverflow.ellipsis,
),
),
),
推荐阅读
- linux - 了解 tmpfs 大小
- docker - docker中的Webpack应用需要环境变量才能构建
- css - CSS 模块和汇总 - 生成具有相同哈希值的单独 CSS 文件(“主题”)
- c# - 图表来自 SQL 数据源,但日期时间为刻度
- python - Python比较字符串返回不相等时它们确实是
- javascript - displaying my webcam in my webpage is not working
- python - Python tkinter 清除标签文本
- javascript - 标量输出 TensorFlow JS
- webrtc - 两个对称 NAT 后面的对等方之间的 ICE 协商会导致需要两个 TURN 服务器吗?
- java - 突然无法使用 Spring Boot 应用程序连接到 mongoDB atlas 云