嗨,我是Flutter的新手,遇到了"渲染框没有布局"的异常。我正在尝试创建MyDialog
,它是内置对话框的扩展。它可以从其他小部件注入内容。我想放置Expanded
小部件 Package Text
小部件作为内容,以便所有文本都可以看到换行符。
我打算内容如下所示:
这是我的MyDialog
小部件。
class MyDialog extends StatelessWidget {
String label;
Widget contents;
const MyDialog({required this.label, required this.contents, Key? key}) : super(key : key)
@override
Widget build(BuildContext context) {
return MyButtonTip( // This is an extension of outlined button.
label : label,
onPressed : () {
showDialog(
context : context,
builder : (BuildContext context) => AlertDialog(
insetPadding : const EdgeInsets.all(15),
content : SizedBox(
width : MediaQuery.of(context).size.width,
child : contents
)
)
);
}
);
}
}
这是使用MyDialog
的小部件。
...
MyDialog(
label : 'Profile',
contents : SizedBox(
child : Stack(
children : [
Column(
children : [
Row(
children : [
Column(
crossAxisAlignment : CrossAxisAlignment.end,
children : const [
Text('name'),
Text('nickname')
]
),
const SizedBox(width : 10),
Column(
crossAxisAlignment : CrossAxisAlignment.start,
children : [
Text(name),
Expanded(
child : Text(nickname)
)
]
)
]
)
]
)
]
))
)
);
...
(我使用Stack
是为了瞄准不同的东西,所以请不要在意它。)
我想知道正确的解决方案,因为我以前遇到过很多次这种异常,每次都以某种方式解决了。请让我知道详细情况。
谢谢你,
PS控制台:
1条答案
按热度按时间3wabscal1#
作为我的意见,你把小部件错误,请尝试下面的代码: