本文介绍了如何解决“RenderBox 未布置:"在卡片小部件中颤动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一张包含三个容器的卡片.前两个有文本,最后一个应该在一些文本旁边保存一个 TextFormField.所以我有一排可以把两个人抱在一起.唯一的问题是当我添加 TextFormField 小部件时,它不会出现并且控制台抛出显示错误
I have a card that has three containers. The first two have text and the last one is supposed to hold a TextFormField alongside some text. So i have a row to hold the two along one another. Only thing is when i add the TextFormField widget it does not appear and the console throws shows an error
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY
╞═════════════════════════════════════════════════════════
I/flutter (14101): The following assertion was thrown during
performLayout():
I/flutter (14101): BoxConstraints forces an infinite width.
I/flutter (14101): These invalid constraints were provided to
RenderRepaintBoundary's layout() function by the
I/flutter (14101): following function, which probably computed the invalid
constraints in question:
I/flutter (14101): _RenderDecoration._layout.layoutLineBox
(package:flutter/src/material/input_decorator.dart:750:11)
I/flutter (14101): The offending constraints were:
I/flutter (14101): BoxConstraints(w=Infinity, 0.0<=h<=100.0)
I/flutter (14101): Another exception was thrown: RenderBox was not laid out:
RenderPadding#150b0 relayoutBoundary=up3 NEEDS-PAINT
I/flutter (14101): Another exception was thrown:
'package:flutter/src/rendering/shifted_box.dart': Failed assertion: line 310
pos 12: 'child.hasSize': is not true.
I/flutter (14101): Another exception was thrown: RenderBox was not laid out:
RenderPhysicalShape#1d998 relayoutBoundary=up4
代码看起来像
import 'package:flutter/material.dart';
class Home extends StatefulWidget {
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: Card(
elevation: 2.0,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Container(
height: 100.0,
color: Colors.purple,
),
Container(
height: 200.0,
color: Colors.pink,
child: Column(
children: <Widget>[
new RichText(
textAlign: TextAlign.center,
text: TextSpan(
text: 'Some Text',
style: TextStyle(
color: Colors.grey[800],
fontWeight: FontWeight.bold,
fontSize: 17.0),
),
),
new RichText(
softWrap: true,
textAlign: TextAlign.center,
text: TextSpan(
text:
'Some other text',
style: TextStyle(
color: Colors.black54,
fontWeight: FontWeight.normal,
fontSize: 17.0),
),
),
Row(
children: <Widget>[
Text('adfa'),
Text('data'),
Form(
child: TextFormField(),
),
],
)
],
),
),
],
),
),
));
}
}
推荐答案
TextFormField
导致问题.它需要宽度限制.例如.将其包装到 Expanded 小部件或具有宽度的容器中.
TextFormField
causes the issue. It needs constraints for width.E.g. wrap it into Expanded widget or Container with width.
这篇关于如何解决“RenderBox 未布置:"在卡片小部件中颤动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!