在颤振中出现'Horizontal viewport was given unbounded height'错误



我正在尝试将带有水平 GridView 子项的扩展磁贴放置在容器中。有关代码,请参见下文。我收到错误消息"水平视口被赋予无限高度"。

我不想明确指定 ExpandTile 或 GridView 的高度,而是从扩展的小组件和 GridView 的子级计算它。

我尝试按照此处的建议在 GridView 中设置"收缩包装:true",但没有成功。我还尝试根据这个答案将 GridView 包装在 Flexible 中,这给了我错误"RenderFlex 子项具有非零弯曲,但传入的高度约束是无限的。

我认为问题在于我如何使用 GridView,但我是 Flutter 的新手,不太确定。这是我的代码:

import 'package:flutter/material.dart';
void main() => runApp(
  MaterialApp(
    home: Scaffold(
      appBar: AppBar(title: Text("Title")),
      body: Column(
        children: <Widget>[
          Expanded(
            flex: 3,
            child: ExpansionTile(
              title: Text("Expandable"),
              children: <Widget>[
                GridView.count(
                  scrollDirection: Axis.horizontal,
                  crossAxisCount: 2,
                  children: <Widget>[
                    RawChip(label: Text("Hello")),
                    RawChip(label: Text("World")),
                  ],
                ),
              ],
            ),
          ),
          Expanded(
            flex: 7,
            child: Container(
              color: Colors.blue
            ),
          ),
        ],
      ),
    ),
  ),
);

您可以向GridView添加高度约束:

         ExpansionTile(
                        title: Text("Expandable"),
                        children: <Widget>[
                          SizedBox(
                            height: 200.0,
                            child: GridView.count(
                              scrollDirection: Axis.horizontal,
                              crossAxisCount: 2,
                              children: <Widget>[
                                RawChip(label: Text("Hello")),
                                RawChip(label: Text("World")),
                              ],
                            ),
                          ),
                        ],
                      ),

相关内容

最新更新