我想展示一些卡与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的高度?
我相信列有一些所谓mainAxisSize财产
Column(
mainAxisSize: MainAxisSize.min,
)
MainAxisSize.min将使此列大小拉伸到孩子的最小尺寸。与之相对MainAxisSize.max将延伸到它所能达到的最大尺寸。
但是我还没有测试它尚未寿。希望这将有助于
你可以使用我的实现
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;
}
这个例子显示的字符串列表
只是不指定itemExtent
参数。
或者只是给它一个null
值,而不是225.0
的
这样,孩子会得到它的确切高度需要到ListView