我想在建立之前得到一个固定宽度的小部件高度。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想在建立之前得到一个固定宽度的小部件高度。相关的知识,希望对你有一定的参考价值。
我有一个问题,要在构建之前得到一个widget的估计高度,问题是这样的,当内容很短时,它需要在一张卡片中显示,但如果内容很长,它需要在2张或更多的卡片中显示,卡片将像Tinder刷卡一样,所以我必须在构建之前计算卡片的数量。
ListView.builder(
itemCount: 1 // count needs to be based on text length
itemBuilder: (BuildContext context, int index) =>
Card(child: Text('Some long message'))
)
我把它简单地做成了一个文本的Card chile,但实际上它是一个复杂的widget,有几个文本和图片,所以我需要计算需要多少个固定高度的卡片才能全部显示。
答案
从你的例子来看,这是一个解决方案。我在空格处拆分长文本,并创建一个字符串列表,然后用该列表填充Listview。
String text = 'Very very long text';
@override
Widget build(BuildContext context) {
List<String> list = (text.split(' '));
return Scaffold(
body: ListView.builder(
itemCount: list.length,
itemBuilder: (BuildContext context, int index) => Card(
child: Text(list[index]),
),
));
}
输出
以上是关于我想在建立之前得到一个固定宽度的小部件高度。的主要内容,如果未能解决你的问题,请参考以下文章