Android 颤振中有6个正方形的网格(2x3)
如何创建这种布局?我用2列3行做不到。我想在脚手架主体中显示6张1-6的卡片或容器。我用这段代码尝试了一下,它在我的模拟器上看起来不错,但在我的真实手机上,它在底部创造了一个空间。我想高度不对Android 颤振中有6个正方形的网格(2x3),android,flutter,dart,Android,Flutter,Dart,如何创建这种布局?我用2列3行做不到。我想在脚手架主体中显示6张1-6的卡片或容器。我用这段代码尝试了一下,它在我的模拟器上看起来不错,但在我的真实手机上,它在底部创造了一个空间。我想高度不对 Widget build(BuildContext context) { return Scaffold( appBar: AppBar( centerTitle: true, ), body: GridView.count(
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
),
body: GridView.count(
crossAxisCount: 2,
children: List.generate(6, (index) {
return CustomContainer(number: index+1,);
}),
));
}
您需要设置GridView小部件的子项的纵横比。您可以通过将项的高度除以其宽度来计算它,您可以从MediaQuery类获得这些值。kToolbarHeight是AppBar的高度,statusBarHeight是状态栏的高度
Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
final double statusBarHeight = MediaQuery.of(context).padding.top;
final double itemHeight =
(size.height - kToolbarHeight - statusBarHeight) / 4;
final double itemWidth = size.width / 2;
return Scaffold(
appBar: AppBar(
centerTitle: true,
),
body: GridView.count(
crossAxisCount: 2,
childAspectRatio: itemHeight / itemWidth,
shrinkWrap: false,
children: List.generate(6, (index) {
return CustomContainer(
number: index + 1,
);
}),
),
);
}
这也适用于我的模拟器,但不适用于我的真实设备。我用手机截图编辑了我的帖子。图片没有显示,这里是链接:你可以添加你的CustomContainer类的代码吗?现在在帖子中,我可以问一下为什么用/4划分而不是/3划分,因为我们列出了3个项目,而不是4@O.T这是正确的,我们将有3行,但如果我们将其除以3,那么纵横比将再次为1:1,我们将无法实现任何目标。
Widget build(BuildContext context) {
var size = MediaQuery.of(context).size;
final double statusBarHeight = MediaQuery.of(context).padding.top;
final double itemHeight =
(size.height - kToolbarHeight - statusBarHeight) / 4;
final double itemWidth = size.width / 2;
return Scaffold(
appBar: AppBar(
centerTitle: true,
),
body: GridView.count(
crossAxisCount: 2,
childAspectRatio: itemHeight / itemWidth,
shrinkWrap: false,
children: List.generate(6, (index) {
return CustomContainer(
number: index + 1,
);
}),
),
);
}