作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试显示水平ListView,其高度由其子级在Column中指定,该高度也是其子级的高度。
但是,我收到以下错误:'constraints.hasBoundedHeight':不正确。
这是重现该错误的简单代码段:
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
main() => runApp(MaterialApp(
home: Scaffold(
body: MyApp(),
),
));
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Text('Vertical1'),
ListView(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
children: <Widget>[
Container(
height: 100,
width: 100,
child: Text('Horizontal1'),
color: Colors.red,
),
],
),
Text('Vertical2')
],
);
}
}
如您所见, children 的高度已经确定,所以我没有问题。
最佳答案
仅仅因为您的 child 有一个尺寸,并不意味着ListView
将采用该尺寸。
您需要为ListView
设置一个高度,因为默认情况下它的高度是无限的。
之所以会出现此错误,是因为您无法在列中放置无限的高度,
因此,如果您希望列表占用所有可用空间,请使用Expanded
小部件为其设置高度。
这是一个例子:
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(
children: <Widget>[
Container(color: Colors.red, child: Text('Vertical1')),
ConstrainedBox(
constraints: BoxConstraints(
maxHeight: 100,
),
child: Container(
color: Colors.green,
child: ListView(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
children: <Widget>[
Container(
height: 100,
width: 100,
child: Text('Horizontal1'),
),
],
),
),
),
Container(color: Colors.red, child: Text('Vertical2'))
],
),
),
);
}
}
关于flutter - 带有 'mainAxisSize: MainAxisSize.min'的列内部的ShrinkWrap Horizontal ListView给出错误: 'constraints.hasBoundedHeight':不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62702828/
我是一名优秀的程序员,十分优秀!