扑:自动垂直高度在ListView.builder

问题描述 投票:1回答:2

我想展示一些卡与ListView.builder 我想自动设置的各卡的高度,以高度的它是儿童的内容

class HomePage extends StatelessWidget {
 Widget _buildListItems(BuildContext context, DocumentSnapshot document) {
  return Center(
   child: Card(
    child: Column(
      children: <Widget>[
        ListTile(
          title: Text(document['title']),
          subtitle: Text(document['subtitle']),
        ),
        Expanded(
          child: Container(
            padding: EdgeInsets.all(20.0),
            child: Text(
              document['summary'],
              softWrap: true,
            ),
          ),
        )
      ],
    ),
  ),
);
}


@override
Widget build(BuildContext context) {
return Scaffold(
  appBar: AppBar(
    title: Text('Title'),
    centerTitle: true,
  ),
  body: StreamBuilder(
    stream: Firestore.instance.collection('randomDB').snapshots(),
    builder: (context, snapshot) {
      if (!snapshot.hasData) return const Text('Loading...');
      return ListView.builder(
        itemExtent: 225.0,
        itemCount: snapshot.data.documents.length,
        itemBuilder: (context, index) =>
            _buildListItems(context, snapshot.data.documents[index]),
      );
    },
  ),
}

当文件[“总结”]太长,这使得通过卡插件的文本溢出。对于这次我要做的就是增加itemExtent在ListView.Builder

有没有办法来动态设置的ListView的高度?

flutter flutter-layout
2个回答
1
投票

我相信列有一些所谓mainAxisSize财产

Column(
  mainAxisSize: MainAxisSize.min,
)

MainAxisSize.min将使此列大小拉伸到孩子的最小尺寸。与之相对MainAxisSize.max将延伸到它所能达到的最大尺寸。

但是我还没有测试它尚未寿。希望这将有助于


1
投票

你可以使用我的实现

Widget adapter(List<String> strings){
    List<Widget> widgets= List<Widget>();
    for(int i=0;i<strings.length;i++){
      widgets.add(Text(strings[i]));
    }

    Row row=Row(
            children: <Widget>[
              Column(
                mainAxisSize: MainAxisSize.min,
                crossAxisAlignment: CrossAxisAlignment.start,
                children:widgets
              ),
            ],
          );
    return row;
  }

这个例子显示的字符串列表


0
投票

只是不指定itemExtent参数。

或者只是给它一个null值,而不是225.0

这样,孩子会得到它的确切高度需要到ListView

© www.soinside.com 2019 - 2024. All rights reserved.