假設我的顫振應用程式的列中有 2 個小部件(Widget_A 和 Widget_B)。Widget_A 包含 SingleChildScrollView() 和 Widget_B 包含一些固定高度元素的 Column。我試圖用下圖演示這個場景。

現在的問題是我希望 Widget_B 占用所需的最小空間,而 Widget_A 占用所有可用空間。我嘗試使用具有 flex 值的 Expanded() 小部件來執行此操作。但是,如果我基于更大的螢屏設備為 Widget_B 提供 flex,它會溢位給像 iPhone SE 這樣的小螢屏設備(因為 Widget_B 包含固定高度的元素)。當我試圖基于較小的螢屏設備為 Widget_B 賦予 flex 時,它會在 Widget_B 下方留下一個很大的空白區域。
我還嘗試用 SizedBox.expand() 包裝 Widget_A,用 SizedBox.shrink() 包裝 Widget_B。但它會引發某種例外。我在下面附上了例外的螢屏截圖。

請指導我,在這種情況下我該怎么辦。非常感謝你。:)
uj5u.com熱心網友回復:
為了占用最大的可用空間, a 中的子小部件Column應Row包含在Expanded中。Expanded還具有flex引數,因此您可以根據自己的喜好調整多個小部件。
這是您所要求的示例代碼。
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: [
Expanded(
child: Container(
color: Colors.white,
child: SingleChildScrollView(
child: Container(
color: Colors.black26,
height: 1200,
child: Center(
child: Text('Widget A SingleChildScrollView content'),
),
),
),
),
),
Column(
children: const [
SizedBox(
height: 20,
child: Text('Widget B child 1'),
),
SizedBox(
height: 20,
child: Text('Widget B child 2'),
),
]),
],
);
}
}
除此之外,您必須確保SingleChildScrollView' 的孩子沒有不受限制的高度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/461124.html
