Flutter中出现“水平视口被赋予无限高度”错误

时间:2019-01-23 18:41:24

标签: android ios user-interface dart flutter

我正在尝试将具有水平GridView子级的ExpansionTile放置在容器中。参见下面的代码。我收到错误消息“水平视口被赋予无限的高度。”

我不想明确指定ExpansionTile或GridView的高度,而是让它根据Expanded小部件和GridView的子代计算得出。

我尝试按照建议的here在GridView中设置'shrinkWrap:true',但没有成功。我还尝试基于this answer将GridView包装到Flexible中,这给我带来了错误:“ RenderFlex子代具有非零的flex,但是传入的高度约束是不受限制的。”

我认为问题出在我如何使用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
            ),
          ),
        ],
      ),
    ),
  ),
);

1 个答案:

答案 0 :(得分:2)

您可以在string.replaceAll(",?\"*\":\\", ""); 中添加高度限制:

GridView