gpt4 book ai didi

flutter - 如何在 Flutter 的聊天气泡中实现时间文本换行行为

转载 作者:IT王子 更新时间:2023-10-29 06:46:39 30 4
gpt4 key购买 nike

许多本地移动聊天信使,如电报、whatsapp 等,都实现了这种换行行为:当没有足够的文本空间时,将时间标签换行。

简单的聊天气泡由两部分组成:文本和时间标签。在简单的情况下,它们几乎位于同一基线上。即使文本是多行的(最后一行的基线)。但在某些情况下,当没有可用空间并且文本试图相交时,会在气泡底部添加一个缩进。

如果我用图片和视频来展示,就很容易理解了: enter image description here

和 2 个视频:

多行 https://youtu.be/eigLIHWaub8

单行https://youtu.be/9GMDFYwMqdU

如何在Flutter上实现?

最佳答案

您可以在第一层使用假占位符作为时间(或其他信息),在第二层使用真实定位的文本。

    class CustomCard extends StatelessWidget {


final String msg;
final String additionalInfo;

CustomCard({
@required this.msg,
this.additionalInfo = ""
});

@override
Widget build(BuildContext context) {
return Card(
child: Stack(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child: RichText(
text: TextSpan(
children: <TextSpan>[

//real message
TextSpan(
text: msg + " ",
style: Theme.of(context).textTheme.subtitle,
),

//fake additionalInfo as placeholder
TextSpan(
text: additionalInfo,
style: TextStyle(
color: Color.fromRGBO(255, 255, 255, 1)
)
),
],
),
),
),

//real additionalInfo
Positioned(
child: Text(
additionalInfo,
style: TextStyle(
fontSize: 12.0,
),
),
right: 8.0,
bottom: 4.0,
)
],
),
);
}

结果可以是这样的: result screenshot

关于flutter - 如何在 Flutter 的聊天气泡中实现时间文本换行行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52892288/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com