flutter - 如何在 ListView 项目中展开列?
问题描述
我有一个小部件,用作ListView
. 它是这样的:
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 32, vertical: 24),
child: Row(
children: [
Container(
width: 100,
height: 100,
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.all(Radius.circular(16)))),
SizedBox(width: 24),
Expanded(
child: Container(
color: Colors.yellow,
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Something",
style: TextStyle(
color: Colors.deepPurple,
fontSize: 20,
fontWeight: FontWeight.bold)),
SizedBox(height: 4),
Text("Something2"),
Text("Something3")
],
),
),
)
],
),
);
}
这就是我创建的方式ListView
:
Widget build(BuildContext context) {
return ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return MyItemWidget();
},
);
}
但是,这会产生以下结果:
您能否建议我如何使文本从项目顶部垂直开始,而不是在中心?
作为奖励,我会对如何使黄色盒子占据整个项目的高度感兴趣。但这不是必需的。
像这样的东西将是所需的输出:
或“奖金”:
解决方案
您可以按照以下代码段设置crossAxisAlignment
您的小部件:Row
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(horizontal: 32, vertical: 24),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: 100,
height: 100,
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.all(Radius.circular(16)))),
SizedBox(width: 24),
Expanded(
child: Container(
color: Colors.yellow,
child: Column(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text("Something",
style: TextStyle(
color: Colors.deepPurple,
fontSize: 20,
fontWeight: FontWeight.bold)),
SizedBox(height: 4),
Text("Something2"),
Text("Something3")
],
),
),
)
],
),
);
}
推荐阅读
- leaflet - 如何从 Leaflet.js 地图创建链接?
- c++ - 在 C++ 中链接构造函数时,首先调用哪个构造函数?
- javascript - JavaScript 问题。我正在学习 for 循环和数组如何与方法一起工作,不知道为什么我在控制台中收到 NAN 消息
- permissions - 如何使缓冲区在 spacemacs 中可写?
- javascript - 如何改用 React.js 的 jQuery Sticky
- excel - COUNTIF 公式 - 计算两个时间间隔之间特定时间出现的次数
- typescript - “未捕获(承诺中):TypeError:webkitSpeechRecognition 不是构造函数
- python - PyQt5 dbus:强制信号参数的类型签名为字符串数组
- java - 使用 Spark Java 将数据帧写入外部分区 Hive 表时出现 Spark 异常
- java - 我的蛮力机器(使用 selenium 和 web 驱动程序使用 java 构建)速度太快,即使使用正确的登录信息也无法正确登录