我正在尝试扩展放置在 Row 中的文本小部件。但我收到错误。
代码:
class MainContainer extends StatelessWidget
{
@override
Widget build(BuildContext context)
{
return Column (
children: <Widget>[
Container(
),
Container(
child: Row(
children: <Widget>[
Row(
children: <Widget>[
Text("label1"),
Expanded(child: Text("label2")) // Problem is here
],)
],),
),
Container(
child: Row(children: <Widget>[
Text("Some Text")
],),
),
],
);
}
}
Run Code Online (Sandbox Code Playgroud)
错误:
我/扑(5480):???通过渲染库捕获的异常 ????????????????????????????????????????????? ???????????? I/flutter (5480):在 performLayout() 期间抛出以下断言:I/flutter (5480):RenderFlex 子项具有非零 flex 但传入的宽度约束是无界的。I/flutter ( 5480) :当一行位于不提供有限宽度约束的父行中时,例如,如果它位于 I/flutter ( 5480) 中:水平滚动,它将尝试收缩包裹其子项水平轴。设置 I/flutter ( 5480): flex on a child (例如使用 Expanded) 表示子项要扩展以填充剩余的 I/flutter ( 5480): 水平方向的空间。I/flutter (5480):这两个指令是互斥的。如果父母要收缩包装其孩子,子 I/flutter ( 5480):不能同时扩展以适合其父级。I/flutter ( 5480):考虑将 mainAxisSize 设置为 MainAxisSize.min 并使用 FlexFit.loose 适合灵活的 I/flutter ( 5480): children(使用 Flexible 而不是 Expanded)。这将允许灵活的孩子调整 I/flutter ( 5480) 的大小:他们自己小于他们将被迫占用的无限剩余空间,并且 I/flutter ( 5480) :然后将导致 RenderFlex 收缩包装孩子而不是扩展以适应最大 I/flutter ( 5480 ):由父级提供的约束。
Rao*_*che 13
问题是你的Text约束是无界的,因为Expanded你不能把一个无界的小部件放在一个有界的(或非零弹性)中
解决方案只是将父级Row放在 flex 小部件中(Flexible/Expanded)
Container(
child: Row(
children: <Widget>[
Flexible(
child: Row(
children: <Widget>[
Text("label1"),
Expanded(child: Text("label2"))
],
),
)
],
),
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4987 次 |
| 最近记录: |