【发布时间】:2021-01-09 14:40:09
【问题描述】:
我有这个容器,其中包含一个包含 ListView.builder() 的 Streambuilder,我希望容器在逻辑上适应不同手机的不同高度,不知道为什么,但是在这个容器中我不能放任何东西在 height 方法中,除了一个纯 obviuos 数字,当我放一个 var 时,整个容器都消失了。
代码:
var device_data = MediaQueryData();
var size = device_data.size;
var height = size.height;
return Stack(
children: [
Container(
height: height * 0.7,
child: StreamBuilder<Object>(
stream: _store
.collection('Khatma Collection')
.document('Khatma 1')
.collection('Videos')
.snapshots(),
builder: (context, AsyncSnapshot snapshot) {
if (snapshot.hasData) {
return ListView.builder(
shrinkWrap: true,
itemCount: snapshot.data.documents.length,
itemBuilder: (context, i) {
var link = snapshot.data.documents[i].data['Link'];
var uploader = snapshot.data.documents[i].data['Uploader'];
var likes = snapshot.data.documents[i].data['Likes'];
var like = likes.toString();
bool liked;
if (int.parse(like) > 0) {
liked = true;
} else if (int.parse(like) == 0) {
liked = false;
}
..............
【问题讨论】:
-
你能打印高度的值吗?看起来您想要 MediaQuery.of(context).size.height 而不是 MediaQueryData().height
-
哦,对不起,我的错误,感谢提醒。
标签: android flutter listview containers height