我正在尝试布局两个小部件。顶部是一个PhotoView,底部是一个滑块。我需要滑块占据它所需要的空间,其余的由PhotoView占用。
我尝试使用一个列类来包装所有的东西。
@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);
},
),
])),
);
}问题是它在底部溢出,说“底部溢出了无限像素”。
我怀疑原因是PhotoView是无界的,列也是无界的,但我需要PhotoView受到视图高度-滑块高度的限制。
发布于 2019-05-01 03:27:58
不是滑块是无界的。将顶部(间接包含PhotoView的容器)包装在Expanded (https://docs.flutter.io/flutter/widgets/Expanded-class.html)中。
我建议不要走手动计算高度和宽度的路线,因为通常没有它也可以达到同样的效果,然后你就可以“免费”地反应所有动态窗口几何形状的变化(比如手机方向的改变)。
https://stackoverflow.com/questions/55927084
复制相似问题