ios - Flutter:为什么卡片小部件之间的间距不同
问题描述
我的 Card 小部件之间的间距显然是随机不同的。我正在使用带有卡片的 ListView,出于故障排除的目的,我已将每个卡片的上下文(文本和图像)更改为相同,但不知何故,间距仍然看起来不同。
在下图中,您可以看到卡片 2 和卡片 3 之间的间距远小于卡片 1 和卡片 2 之间的间距。
代码:
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
home: MyApp(),
));
}
class MyApp extends StatefulWidget {
@override
MyAppState createState() => MyAppState();
}
class MyAppState extends State<MyApp> {
// List data;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Nyskördat"),
backgroundColor: Colors.deepPurple,
),
body: Container(
child: Center(
// Use future builder and DefaultAssetBundle to load the local JSON file
child: FutureBuilder(
future: DefaultAssetBundle.of(context)
.loadString('assets/fruits_data.json'),
builder: (context, snapshot) {
// Decode the JSON
var fruits = json.decode(snapshot.data.toString());
var now = new DateTime.now();
return ListView.builder(
// Build the ListView
itemCount: fruits == null ? 0 : fruits.length,
itemBuilder: (BuildContext context, int index) {
var currentMonth = fruits[index]['months'].toString();
return Card(
child: Column(
children: <Widget>[
if (currentMonth.contains(now.month.toString()))
SizedBox(
height: 350,
width: 600,
child: Stack(
children: <Widget>[
if (currentMonth
.contains(now.month.toString()))
//Container(
Image.asset('assets/orange.jpg'),// +
// fruits[index]['image'].toString()),
//),
if (currentMonth
.contains(now.month.toString()))
Container(
margin: const EdgeInsets.only(
bottom: 5, left: 5),
child: Align(
alignment: Alignment.bottomLeft,
child: Text(
fruits[index]['name'].toString(),
style: TextStyle(
fontFamily: 'DancingScript',
fontSize: 70,
color: Colors.lightBlue),
),
),
)
],
),
),
],
),
);
},
);
}),
),
));
}
}
解决方案
Column
里面Card
只会有孩子if (currentMonth.contains(now.month.toString()))
。这种情况对你所有的人来说都是真的fruits
吗?
我想不是。您没有为相反的情况提供任何内容,导致Card
. 默认情况下,Card
小部件的边距为 4 px,这对您来说看起来像是更多的空白空间。
顺便说一句,您不必重复if (currentMonth.contains(now.month.toString()))
条件,Stack
因为如果第一次不满足条件,则不会构建整个事情。
推荐阅读
- wordpress - VR 视频不再显示在任何设备上
- kotlin - 如何在序列化过程中为 kotlin 中的数据类中的字段保存大小写?
- c# - 使用 OpenXml-sdk 和 C# 访问 Word 文件的当前上下文中不存在名称“c”
- javascript - 如何提高我的 javascript 的质量 - 给定 2 个 json 格式数组
- python - 气流不会在失败时发送 dags 的电子邮件
- ansible - 向 Ansible 中的现有键添加值
- python - 如何永久存储用户输入以在将来添加到另一个变量?
- javascript - React JS 中没有显式的数据绑定
- django - 我怎么知道电子邮件是真正的电子邮件还是不使用 django 框架
- typescript - TypeScript 隐含泛型