flutter - 在 Flutter 的列中插入一行
问题描述
我的 UI 屏幕基本上是使用 Column 小部件呈现的,在这个小部件中,我插入了所有其他 UI 组件。其中之一恰好是 Row (由 2 个文本字段组成)。这是行小部件:
var phoneNumber = new Row(
children: <Widget>[
new Padding(
padding: const EdgeInsets.all(20.0),
child: countryCodePicker,
),
new Padding(
padding: const EdgeInsets.all(20.0),
child: mobileNumber,
),
],
);
主 UI 屏幕是:
return SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
customerName,
emailAddress,
// new Container(
// child: deliveryOptionRow,
// ),
mobileNumber,
countryCodePicker,
templateMessagesDropDown,
templateMessageTextField,
sendGoogleReview,
],
)
);
当我将行添加到列时,我看到了这个异常
The following RenderObject was being processed when the exception was fired:
flutter: _RenderListTile#06b03 relayoutBoundary=up11 NEEDS-LAYOUT NEEDS-PAINT
flutter: creator: _ListTile ← MediaQuery ← Padding ← SafeArea ← Semantics ← Listener ← _GestureSemantics ←
flutter: RawGestureDetector ← GestureDetector ← InkWell ← ListTile ← ListTileTheme ← ⋯
flutter: parentData: offset=Offset(0.0, 0.0) (can use size)
flutter: constraints: BoxConstraints(unconstrained)
flutter: size: MISSING
flutter: This RenderObject had the following descendants (showing up to depth 5):
flutter: _RenderRadio#302a4 relayoutBoundary=up12 NEEDS-PAINT
flutter: RenderParagraph#58a45 NEEDS-LAYOUT NEEDS-PAINT
在主 UI 屏幕中添加行的最佳方法是什么。
解决方案
这应该可以解决您的问题,
var phoneNumber = new Row(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Expanded(
child: new Padding(
padding: const EdgeInsets.all(20.0),
child: countryCodePicker,
),
),
Expanded(
child: new Padding(
padding: const EdgeInsets.all(20.0),
child: mobileNumber,
),
),
],
);
希望能帮助到你!
推荐阅读
- php - 如果请求为 0,Laravel 查询获取全部
- java - 在jsp中显示错误登录消息
- dropbox-api - Dropbox Python API - Upload function
- git - Git缺少存储库上的文件和文件夹
- d3.js - D3 Error:
attribute d: Expected number, "MNaN,NaNLNaN,NaNL…" - c# - 操作子框架内的控件的最佳方法是什么?(UWP)
- python - 如何创建一个漂亮的一维图?
- ios - UIPickerView 委托未在子视图中调用
- jestjs - 开玩笑 - 在每次测试之前做一些事情
- istio - Istio 0.8。跟踪请求中应用的 istio 对象和规则