flutter - 具有多列和常量宽度/高度卡的列表视图
问题描述
我在制作带有 2 列的可滚动列表视图时遇到问题(完美的是 flex 列数取决于屏幕宽度),带有垂直滚动。此列表中将包含具有 const 高度和宽度的卡片。
我已经尝试使用 gridview.count 制作 2 列,但它一直缩放到屏幕大小(我使用了 childAspectRatio,但没有按预期工作)。还尝试使用 ConstrainedBox 作为我卡的主要小部件,但不起作用。
想提一下,应用程序也适用于 iOS 和 android。
class SongbookCardList extends StatelessWidget {
@override
Widget build(BuildContext context) {
final Size size = MediaQuery.of(context).size;
/*24 is for notification bar on Android*/
final double itemHeight = (size.height - kToolbarHeight - 24) / 2;
final double itemWidth = size.width / 2;
return Container(
child: GridView.count(
// childAspectRatio: (itemWidth / itemHeight),
shrinkWrap: true,
padding: EdgeInsets.only(top: 20, left: 15, right: 15),
mainAxisSpacing: 15,
crossAxisSpacing: 10,
crossAxisCount: 2,
children: [
SongbookCard(),
SongbookCard(),
SongbookCard(),
SongbookCard(),
SongbookCard(),
],
),
);
}
}
class SongbookCard extends StatelessWidget {
final SongBookWidgetStyle style = const SongBookWidgetStyle();
@override
Widget build(BuildContext context) {
return ConstrainedBox(
constraints: const BoxConstraints(
maxWidth: 150, maxHeight: 140, minHeight: 140, minWidth: 150),
child: NeumorphicButton(
onPressed: () {},
boxShape: NeumorphicBoxShape.roundRect(
BorderRadius.circular(style.borderRadius)),
style: style.neumorphicStyle,
padding: const EdgeInsets.only(top: 16.0),
child: Column(
children: <Widget>[
Flexible(
flex: 8,
child: ClipRRect(
child: Container(
decoration: BoxDecoration(
borderRadius:
const BorderRadius.all(Radius.circular(12.0)),
color: ColorsExtension.appPurple),
width: 120,
height: 120,
),
),
),
Padding(
padding: const EdgeInsets.only(top: 8.0),
child: Text(
'test',
textAlign: TextAlign.center,
),
)
],
),
),
);
}
}
现在查看:
查看,我需要:
解决方案
请更改此代码(紫色容器)
width: 120,
height: 120,
至
width : MediaQuery.of(context).size.width * 0.3,
height : MediaQuery.of(context).size.width * 0.3,
或者您可以在容器中添加填充并删除尺寸
推荐阅读
- javascript - 在for循环中串行发送多个axios请求(一个接一个)
- android - 更新到 Android 10 api 版本 29 后,SQLite 数据库崩溃
- python - 根据条件在python数据框中逐行更改项目
- python - 获取字符串的行号
- excel - 日期格式在德语到英语的不同系统中表现出色
- elasticsearch - Elastic.Apm.EntityFramework6.Ef6Interceptor, Elastic.Apm.EntityFramework6 在应用程序配置中注册
- python - '消息已被删除:' 不可调用
- bash - 以 sudo -H -u 用户身份运行时执行找不到 var
- python - 多 GPU 在内存分配方面如何扩展?
- python - 将烧瓶视图值传递给其余代码以使用