flutter - 如何在颤动中安排边框布局?
问题描述
我正在尝试布局两个小部件。顶部是PhotoView,底部是滑块。我需要滑块占用所需的空间,其余部分由 PhotoView 占用。
我尝试使用 Column 类来包装所有内容。
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: GestureDetector(
onTapDown: (TapDownDetails details) {print("Tapped");}),
child: Column(children: [
Container(
child: Center(
child: Container(
margin: EdgeInsets.fromLTRB(10, 0, 10, 0),
child: Container(
child: hasPermission
? PhotoView(
imageProvider:
FileImage(filename)),
)
: Text("Waiting"),
)),
)),
Slider(
min: 0,
max: 10,
value: 5,
onChanged: (double value) {
print(value);
},
),
])),
);
}
问题是它在底部溢出,说“BOTTOM OVERFLOWED BY infinity PIXELS”。
我怀疑原因是 PhotoView 是无界的,列也是如此,但我需要 PhotoView 受视图高度的限制 - 滑块高度。
解决方案
它不是无限的滑块。将顶部(间接包含 PhotoView 的容器)包裹在 Expanded ( https://docs.flutter.io/flutter/widgets/Expanded-class.html ) 中。
我建议不要手动计算高度和宽度,因为通常没有它可以实现相同的效果,然后您可以“免费”响应所有动态窗口几何形状的变化(如手机方向的变化)。
推荐阅读
- ios - 删除并重新安装应用后,iOS 钥匙串数据会保留吗?
- ruby-on-rails - Rails 范围使用实例方法
- pandas - 多索引列上的熊猫,fillna
- python - 如何在我的烧瓶网络应用程序中实现动态 select2 字段?
- node.js - 如何将两个 GET 请求/数据库合并为 1?
- git - 是否可以在 GitAhead 中输入命令行 git 命令?
- python - 使用数据流将数据插入mysql
- javascript - JHipster 中的更多排序列
- python - pyperclip 仅将列表 cocatenation 中的最后一项复制到剪贴板
- android - 尝试在 nul 对象引用上调用虚拟方法 'android.content.ContentResolverr android.id.content.Context.getContentesolver()'