Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 颤振中有6个正方形的网格(2x3)_Android_Flutter_Dart - Fatal编程技术网

Android 颤振中有6个正方形的网格(2x3)

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(

如何创建这种布局?我用2列3行做不到。我想在脚手架主体中显示6张1-6的卡片或容器。我用这段代码尝试了一下,它在我的模拟器上看起来不错,但在我的真实手机上,它在底部创造了一个空间。我想高度不对

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,
          );
        }),
      ),
   );
}