我想在建立之前得到一个固定宽度的小部件高度。

我有一个问题,要在构建之前得到一个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]),
      ),
    ));
  } 

输出

enter image description here

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/352.html

(0)
上一篇 2022年6月29日 下午3:55
下一篇 2022年6月29日 下午3:55

相关推荐

发表评论

登录后才能评论