我的应用程序结果如下:
http://go.microsoft.com/fwlink/?LinkId=691126&fixForIE=.exe
为什么图像与上方边界之间的距离与文本与下方边界之间的距离不同?使两个极限距离相等的解决方案是什么?而不是通过使用边距或填充进行硬编码,因为如果设备在不同的设备上运行,则空间必须有所不同。有任何小部件可以处理吗?
这是我获取清单的代码。
Widget _cardCategory(AsyncSnapshot<CatlistResult> snapshot) {
var numItems = snapshot == null ? 0 : snapshot.data.catlist.sublist(0, 7).length;
return Container(
transform: Matrix4.translationValues(0.0, -20.0, 0.0),
child: Card(
elevation: 5.0,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(5))),
margin: EdgeInsets.only(left: 16.0, right: 16.0),
child: numItems == 0 ? Container() : GridView.builder(
shrinkWrap: true,
primary: false, //kill scrollable
itemCount: numItems + 1, //must keep using +1
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 4),
itemBuilder: (BuildContext context, int index) {
String imagePath;
String itemText;
if (index == numItems) {
imagePath = 'assets/images/main/cat_999.png';
itemText = 'More';
} else {
imagePath = 'assets/images/main/cat_${snapshot.data.catlist[index].a}.png';
itemText = snapshot.data.catlist[index].c;
}
return GestureDetector(
child: Card(
elevation: 0.0,
child: Column(
children: <Widget>[
Expanded(
child: Image.asset(imagePath, fit: BoxFit.cover),
),
Text(
itemText,
style: TextStyle(fontSize: 10),
),
],
),
),
// onTap: () {
// nextScreen17(index);
// }
);
},
),
),
);
}