flutter - 在颤振中,我希望容器内的图标占据容器的最大大小
问题描述
Widget build(BuildContext context) {
return Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Flexible(
flex: 1,
child: Container(
color: Colors.blueAccent
),
),
Flexible(
flex: 4,
child: Container(
color: Colors.deepOrangeAccent,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
//mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Icon(Icons.image),
],
),
),
),
Flexible(
flex: 2,
child: Container(color: Colors.blueGrey),
),
],
),
);
图标仅采用其原始大小。我想让它填满容器。我试过 LayoutBuilder 但 BoxConstraints 有无限高度警告。请在不为任何小部件使用硬编码大小的情况下建议任何其他选项。
解决方案
编辑; 因此,在阅读了您的评论后,您应该使用 FittedBox 代替(如评论中所建议的那样)和BoxFit.Fill
属性;所以:
<Widget>[ Expanded(child:FittedBox(child: Icon(Icons.image),fit: BoxFit.fill)), ]
--
如果您可以更改icon
为,Image
则可以使用 BoxFit.fill 属性拉伸图像以填充整个容器(也将图像包装在 Expanded 小部件中)。
这是一个带有占位符的示例:
Flexible(
flex: 4,
child: Container(
color: Colors.deepOrangeAccent,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
//mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Expanded(child: Image.network('https://picsum.photos/250?image=9', fit:BoxFit.fill)
)
],
),
),
推荐阅读
- javascript - 在同步代码库中异步调用函数
- python - 如何在 csv 文件的单个列中单独计算重复标题的数值总和?
- ios - iOS隐藏后点击状态栏
- javascript - 复选框总是被选中
- flink-streaming - 为什么 Flink Stream 不支持左连接表达式?
- assembly - NASM 如何找到这个标签地址?
- javascript - 为什么当我调用这个函数时我的表没有生成?
- java - Sphinx4 语音识别停止工作
- ffi - 带有 Chez Scheme FFI 的 ReadProcessMemory
- reactjs - 如何查看 react-router 中的历史路径列表?