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
Flutter 响应性GridView全屏颤振_Flutter_Gridview_Flutter Layout - Fatal编程技术网

Flutter 响应性GridView全屏颤振

Flutter 响应性GridView全屏颤振,flutter,gridview,flutter-layout,Flutter,Gridview,Flutter Layout,我想让我的gridview占据整个屏幕,但我找不到一种方法来做到这一点。 我已经检查了多个博客,如: 但这对我来说似乎不起作用。 甚至当我使用MediaQuery数据获取屏幕宽度和高度以适应childAspectRation时 这里是我的网格视图: GridView.count( childAspectRatio: (widthScreen / heightScreen), shrinkWrap: true,

我想让我的gridview占据整个屏幕,但我找不到一种方法来做到这一点。 我已经检查了多个博客,如:

但这对我来说似乎不起作用。 甚至当我使用MediaQuery数据获取屏幕宽度和高度以适应childAspectRation时

这里是我的网格视图:

GridView.count(
                childAspectRatio: (widthScreen / heightScreen),
                shrinkWrap: true,
                crossAxisCount: 2,
                physics: NeverScrollableScrollPhysics(),
                crossAxisSpacing: 15,
                mainAxisSpacing: 10,
                padding: const EdgeInsets.all(5),
                children: <Widget>[
                  CardItem(
                    imageUrl: 'assets/images/apprendreajouer.jpg',
                    title: 'Apprendre à jouer',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Cours",
                            pageKey: 1,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/exercices.jpeg',
                    title: 'Exercice',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Exercices",
                            pageKey: 2,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/partition.jpg',
                    title: 'Partition',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Partition",
                            pageKey: 3,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/dictionnaire.jpeg',
                    title: 'Mon dictionnaire',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Dictionnaire d'accords",
                            pageKey: 4,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/examen.jpeg',
                    title: 'Examen',
                  ),
                  CardItem(
                    imageUrl: 'assets/images/apropos.jpg',
                    title: 'A propos',
                  ),
                ],
              ),
GridView.count(
childAspectRatio:(宽屏幕/高屏幕),
收缩膜:对,
交叉轴计数:2,
物理学:NeverscrollableScroll物理学(),
横轴间距:15,
平均间距:10,
填充:常量边集。全部(5),
儿童:[
卡迪姆(
imageUrl:'assets/images/apprendreajouer.jpg',
标题:'Apprendreájouer',
功能:(){
导航器。推(
上下文
CupertinoPageRoute(
生成器:(上下文)=>ListLevelsPage(
页面标题:“课程”,
页码键:1,
上下文:上下文,
),
),
);
},
),
卡迪姆(
imageUrl:'assets/images/exercies.jpeg',
标题:“行使权”,
功能:(){
导航器。推(
上下文
CupertinoPageRoute(
生成器:(上下文)=>ListLevelsPage(
页面标题:“练习”,
页码键:2,
上下文:上下文,
),
),
);
},
),
卡迪姆(
imageUrl:'assets/images/partition.jpg',
标题:“分区”,
功能:(){
导航器。推(
上下文
CupertinoPageRoute(
生成器:(上下文)=>ListLevelsPage(
页面标题:“分区”,
页码键:3,
上下文:上下文,
),
),
);
},
),
卡迪姆(
imageUrl:'assets/images/dictionnaire.jpeg',
标题:“Mon dictionnaire”,
功能:(){
导航器。推(
上下文
CupertinoPageRoute(
生成器:(上下文)=>ListLevelsPage(
页面标题:“协议用语”,
页码键:4,
上下文:上下文,
),
),
);
},
),
卡迪姆(
imageUrl:'assets/images/examen.jpeg',
标题:“Examen”,
),
卡迪姆(
imageUrl:'assets/images/apropos.jpg',
标题:“提案人”,
),
],
),
下面是我想要的图片:

GridView.count(
                childAspectRatio: (widthScreen / heightScreen),
                shrinkWrap: true,
                crossAxisCount: 2,
                physics: NeverScrollableScrollPhysics(),
                crossAxisSpacing: 15,
                mainAxisSpacing: 10,
                padding: const EdgeInsets.all(5),
                children: <Widget>[
                  CardItem(
                    imageUrl: 'assets/images/apprendreajouer.jpg',
                    title: 'Apprendre à jouer',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Cours",
                            pageKey: 1,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/exercices.jpeg',
                    title: 'Exercice',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Exercices",
                            pageKey: 2,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/partition.jpg',
                    title: 'Partition',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Partition",
                            pageKey: 3,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/dictionnaire.jpeg',
                    title: 'Mon dictionnaire',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Dictionnaire d'accords",
                            pageKey: 4,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/examen.jpeg',
                    title: 'Examen',
                  ),
                  CardItem(
                    imageUrl: 'assets/images/apropos.jpg',
                    title: 'A propos',
                  ),
                ],
              ),

更新使用@Thierry源代码获得的内容:

GridView.count(
                childAspectRatio: (widthScreen / heightScreen),
                shrinkWrap: true,
                crossAxisCount: 2,
                physics: NeverScrollableScrollPhysics(),
                crossAxisSpacing: 15,
                mainAxisSpacing: 10,
                padding: const EdgeInsets.all(5),
                children: <Widget>[
                  CardItem(
                    imageUrl: 'assets/images/apprendreajouer.jpg',
                    title: 'Apprendre à jouer',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Cours",
                            pageKey: 1,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/exercices.jpeg',
                    title: 'Exercice',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Exercices",
                            pageKey: 2,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/partition.jpg',
                    title: 'Partition',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Partition",
                            pageKey: 3,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/dictionnaire.jpeg',
                    title: 'Mon dictionnaire',
                    function: () {
                      Navigator.push(
                        context,
                        CupertinoPageRoute(
                          builder: (context) => ListLevelsPage(
                            pageTitle: "Dictionnaire d'accords",
                            pageKey: 4,
                            context: context,
                          ),
                        ),
                      );
                    },
                  ),
                  CardItem(
                    imageUrl: 'assets/images/examen.jpeg',
                    title: 'Examen',
                  ),
                  CardItem(
                    imageUrl: 'assets/images/apropos.jpg',
                    title: 'A propos',
                  ),
                ],
              ),

任何帮助都会很好。

您的代码中存在一些差异

您不能定义:

  • 6
    GridView的
    children
  • childAspectRatio
    of
    widthScreen/heightScreen
  • crossAxisCount:2
如果将
子项的数量减少到4,则可以保留
子项的数量
交叉轴计数

如果要在3行
上设置6个
子项
,请将
childAspectRatio
更改为
MediaQuery.of(context).size.aspectRatio*3/2

如果希望在2行
上有6个
子对象
,则将
交叉轴计数
增加到3,并将
子对象
更改为
MediaQuery.of(context).size.aspectRatio*2/3

注意:您可以继续这样做。如果需要n
子对象的m
,则
子对象应为
m/n

完整的源代码(3行上的6个子代码)
导入“包装:颤振/材料.省道”;
void main(){
runApp(
材料聚丙烯(
debugShowCheckedModeBanner:false,
标题:“颤振演示”,
主页:主页(),
),
);
}
类主页扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(标题:文本(“GridView演示”),
正文:布局生成器(
生成器:(上下文,约束)=>GridView.count(
childAspectRatio:constraints.Maximum.aspectRatio*3/2,
收缩膜:对,
交叉轴计数:2,
物理学:NeverscrollableScroll物理学(),
子项:List.generate(
6.
(索引)=>填充(
填充:常数边集全部(4.0),
孩子:卡迪姆(
imageUrl:'assets/images/abstract$index.jpg',
标题:“摘要$index”,
),
),
).toList(),
),
),
);
}
}
类CardItem扩展了无状态小部件{
最终字符串imageUrl;
最后的字符串标题;
最终的回调函数;
const CardItem({Key Key,this.imageUrl,this.title,this.function})
:super(key:key);
@凌驾
小部件构建(BuildContext上下文)