如何在扑动中实现这个复杂的视图?
我正在尝试GridView使用n列实现,并且子应该具有一定的宽高比(比如说1.3),但是孩子的高度应该是(在Android术语中包装内容).
我被困了,因为我理解GridView childAspectRatio:1.3(默认值:1)总是以相同的宽高比而不是动态内容来布置孩子.
注意:孩子应根据图像的高度扩展其高度
使用案例:我正在尝试实现如下所示的视图,其中图像被包裹,height = wrap content以便在具有拉伸高度的图像看起来很好并且形成StaggeredGridView类似结构的情况下.

我是flutter的新手,我想连续绘制一个图像网格。我使用了这个例子Flutter - Layout a Grid但它每次出现错误时都会显示
Widget buildView(){
return new Container(
color: Colors.white,
child:
new Padding(
padding: EdgeInsets.all(8.0),
child: new Column(
children: <Widget>[
new Row(
children: <Widget>[
Flexible(
child: new GridView.count(
crossAxisCount: 4,
childAspectRatio: 1.0,
padding: const EdgeInsets.all(4.0),
mainAxisSpacing: 4.0,
crossAxisSpacing: 4.0,
children: <String>[
'https://via.placeholder.com/150',
'https://via.placeholder.com/150',
'https://via.placeholder.com/150',
'https://via.placeholder.com/150',
'https://via.placeholder.com/150',
'https://via.placeholder.com/150',
].map((String url) {
return new GridTile(
child: new Image.network(url, fit: BoxFit.cover));
}).toList()),
),
],
),
],
),
],
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
每次出现此错误“垂直视口被赋予无限高度”时,我都会编码
我有一个这样的设计:
我一直在阅读 boutGridView并发现它足够复杂以获得结果。我也在这里关注了这个问题:Flutter-Layout a Grid。发现这是针对固定列表,加上列表有不同的UI。
我有来自 API 的信息,我有一个名为 as 的小部件,MoreInfo()它有一个要从 API 传递的文本参数。
我已经实现了我想要从列表中获取字符串的目的。只是我试图得到结果,但没有很好地给出结果。
将列表添加到小部件:
GridView getOtherInfo(BuildContext context){
List<String> _yesElems = [];
List<Widget> _widget = [];
this.userBarModel.barModel.otherInfo.yes.forEach((item){
_yesElems.add(item);
});
_yesElems.forEach((o){
_widget.add(MoreInfoWidget(text: o));
});
return GridView.count(
crossAxisCount: 4,
children: _widget
);
}
Run Code Online (Sandbox Code Playgroud)
界面代码:
Column(
corssAxisalignment: CrossAxisAlignment.stretch;
children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 9.0),
child: Text("MORE INFO",
style: TextStyle(color: Color.fromRGBO(183, 193, 203, 1), fontWeight: FontWeight.bold, fontSize: 11.0))
),
SizedBox(height: 11.4),
Container(
height: 140,
child: getOtherInfo(context)
)
]
) …Run Code Online (Sandbox Code Playgroud)