我被卡住了......這是我的代碼分解:
Column(
children: [
Column(
children: [
Text('Whyy'),
Spacer(),
Text('crash?'),
],
),
Text('ok'),
],
),
這會因錯誤而崩潰:
RenderFlex 子項具有非零 flex,但傳入的高度約束是無界的。
當一列位于不提供有限高度約束的父列中時,例如,如果它在垂直可滾動中,它將嘗試沿垂直軸收縮包裹其子項。對子項設定 flex(例如使用 Expanded)表示子項將擴展以填充垂直方向上的剩余空間。這兩個指令是互斥的。如果父級要收縮包裹其子級,則子級不能同時展開以適合其父級。
但為什么?這到底是為什么崩潰?該Parent-Column是內部的Scaffold小號body。
我在這里錯過了什么?
如果您需要更多資訊,請告訴我!
uj5u.com熱心網友回復:
這是因為內列對其高度沒有任何限制,因此Spacer小部件可以占用無限大的空間。您可以通過用Expanded(或任何其他高度約束小部件,如SizedBox)包裹內列的高度來設定實際約束:
Column(
children: [
Expanded(
child: Column(
children: [
Text('No'),
Spacer(),
Text('crash!'),
],
),
),
Text('ok'),
],
),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/370361.html
下一篇:如何使整個頁面在顫動中可滾動
