我正在尝试将带有水平 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")),
],
),
),
],
),