Gridview 以网格为中心的颤振布局

Gridview 以网格为中心的颤振布局,gridview,layout,dart,flutter,Gridview,Layout,Dart,Flutter,我正在尝试创建一个颤振布局,屏幕中央有6x6的方桌(网格),网格上/下有一些元素。最好的方法是什么 我已经将中心网格实现为 Center() => AspectRatio(aspectRatio: 1) => GridView(); 但是如何放置其余的元素呢?我曾考虑过使用Stack(),但认为这不是最好的解决方案。或者我应该使用Row()小部件来实现这一点,如果是这样的话,我该如何将该行的第二个子行对齐到中间 谢谢你的帮助 UPD:。我想在网格下方和上方再放置两个容器,并希望它们

我正在尝试创建一个颤振布局,屏幕中央有6x6的方桌(网格),网格上/下有一些元素。最好的方法是什么

我已经将中心网格实现为

Center() => AspectRatio(aspectRatio: 1) => GridView();
但是如何放置其余的元素呢?我曾考虑过使用Stack(),但认为这不是最好的解决方案。或者我应该使用Row()小部件来实现这一点,如果是这样的话,我该如何将该行的第二个子行对齐到中间

谢谢你的帮助


UPD:。我想在网格下方和上方再放置两个容器,并希望它们填充所有可用空间

,这就是我如何使用Column widget对齐网格上方和下方的元素,并展开以使网格在Column widget中可见的方法:

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: SafeArea(
      child: Column(children: [
        new Text('app'),
        new Expanded(
            child: new Center(
                child: new Container(
                    height: [EXPECTED_GRID_HEIGHT],
                    child: GridView.count(
                      padding: const EdgeInsets.all(20.0),
                      crossAxisSpacing: 10.0,
                      mainAxisSpacing: 10.0,
                      crossAxisCount: 4,
                      children: [GRID_ELEMENTS],
                    )))),
        new Text('app'),
      ]),
    ));

这就是我如何使用Column小部件来对齐网格上下的元素,并扩展以使网格在Column小部件中可见:

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: SafeArea(
      child: Column(children: [
        new Text('app'),
        new Expanded(
            child: new Center(
                child: new Container(
                    height: [EXPECTED_GRID_HEIGHT],
                    child: GridView.count(
                      padding: const EdgeInsets.all(20.0),
                      crossAxisSpacing: 10.0,
                      mainAxisSpacing: 10.0,
                      crossAxisCount: 4,
                      children: [GRID_ELEMENTS],
                    )))),
        new Text('app'),
      ]),
    ));

有一个非常简单的方法

只需设置
shrinkWrap:true
,这使得
GridView
占用最小空间,并使用
Center
小部件包装
GridView

主体:中心(
子项:GridView.count(
收缩膜:对,
交叉轴计数:4,
儿童:儿童小部件,
childAspectRatio:r,
),
),

有一个非常简单的方法

只需设置
shrinkWrap:true
,这使得
GridView
占用最小空间,并使用
Center
小部件包装
GridView

主体:中心(
子项:GridView.count(
收缩膜:对,
交叉轴计数:4,
儿童:儿童小部件,
childAspectRatio:r,
),
),

添加所需内容的可视示例。很难理解,你看了Stack类了吗?是的,我看了。但是我的小部件不会相互重叠,所以我不喜欢使用堆栈。我知道问题已经得到了回答,但是请随意看看这个很棒的颤振布局指南。我发现它非常有用,可以添加一个直观的示例来说明您想要什么。很难理解,你看了Stack类了吗?是的,我看了。但是我的小部件不会相互重叠,所以我不喜欢使用堆栈。我知道问题已经得到了回答,但请随意看看这本很棒的颤振布局指南。我发现它非常有用。谢谢,救我一命。谢谢,
shrinkWrap:true,
是我想要的。谢谢,救我一命。谢谢,
shrinkWrap:true,
是我想要的。