我试图在容器中放置一个具有水平ExpansionTile子级的GridView。代码见下文。我得到了错误信息:“水平视图被赋予无限的高度。”
我不想显式地指定ExpansionTile或GridView的高度,而是从扩展的小部件和GridView的子部件中计算它。
我试着在GridView中设置‘GridView: true’,就像建议的here那样,但没有成功。我还尝试了在基于GridView的this answer基础上灵活地包装RenderFlex,这给出了一个错误:“RenderFlex子级有非零的弯曲,但是传入的高度约束是无界的。”
我认为问题在于我是如何使用GridView的,但我还不太清楚。这是我的代码:
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
),
),
],
),
),
),
);
发布于 2019-01-24 01:56:31
您只需在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")),
],
),
),
],
),
https://stackoverflow.com/questions/54333698
复制相似问题