我想在Flutter中实现以下设计,特别是放置文本的圆角矩形。
我已经使用Stack小部件将Text放置在Container的左下角,但问题是Text在Stack边界之外的一行中,而不是在第二行中。为了简单起见,我编写了如下更简单的代码:
@override
Widget build(BuildContext context) {
return Center(
child: Stack(
children: [
Container(
width: 150,
height: 150,
color: Colors.teal.shade300,
),
const Positioned(
left: 16,
bottom: 16,
child: Text(
"A very looooooooooooooooong teeeeeeeext",
maxLines: 2,
softWrap: true,
),
),
],
),
);
}
而结果是:
那么,在这种情况下,我该如何将文本拆分到第二行(而不是使用\n字符)呢?或者,如果有其他解决方案而不是使用Stack,请告诉我。谢谢。
5条答案
按热度按时间kgsdhlau1#
您可以在容器内使用align,而不是使用stack
ukqbszuj2#
您可以使用GridView实现以下设计。如下所示:
或者您可以使用GridView.builder。
pengsaosao3#
使用扩展的小部件
rt4zxlrg4#
对堆栈上的多行文本使用类似的布局。
jobtbby35#
示例代码片段
说明:
为容器的文本小部件(左下角)提供随机位置。同时为“定位”小部件提供宽度,以便“文本”小部件知道文本实际溢出的位置以及需要应用溢出属性的位置。
我使用了'TextOverflow.ellipsis',这样溢出的文本将进入下一行,但我指定了我希望看到的文本行数(即'maxLines:3“),然后将其余文本替换为...”“。