Flutter 颤振行在ListView中
我试图在列表视图中添加一行,但得到了错误Flutter 颤振行在ListView中,flutter,flutter-layout,Flutter,Flutter Layout,我试图在列表视图中添加一行,但得到了错误 I/flutter (13858): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════ I/flutter (13858): The following assertion was thrown during performLayout(): I/flutter (13858): BoxConstrain
I/flutter (13858): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
I/flutter (13858): The following assertion was thrown during performLayout():
I/flutter (13858): BoxConstraints forces an infinite height.
I/flutter (13858): These invalid constraints were provided to RenderParagraph's layout() function by the following
I/flutter (13858): function, which probably computed the invalid constraints in question:
I/flutter (13858): RenderFlex.performLayout (package:flutter/src/rendering/flex.dart:805:17)
I/flutter (13858): The offending constraints were:
I/flutter (13858): BoxConstraints(w=72.0, h=Infinity)
根据针对该错误找到的指导,我尝试将我的ListView包装在扩展的中,但这只会导致扩展的小部件必须放在Flex小部件中,这导致我尝试另一种方法。。。。结果又犯了同样的错误
我的小部件在下面。有没有办法让它工作起来?我最终要做的是显示多组行,它们之间有一些文本,允许用户上下滚动页面
class _RoutineEditState extends State<RoutineEdit> {
String routineName;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Edit Routine'),
),
body: ListView(
//padding: EdgeInsets.fromLTRB(10, 15, 10, 5),
children: <Widget>[
Text('ddedede'),
Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Set'),
],
),
],
),
);
}
}
扩展的小部件必须是行或列小部件的子部件,但您已经在body属性中直接使用了它。尝试删除第一个扩展的小部件
扩展的小部件必须是行或列小部件的子部件,但您已经在body属性中直接使用了它。尝试删除第一个扩展的小部件
因为我不知道你想要的布局 只是为了修正错误。我们有三个选择 第一:使用-IntrinsicHeight小部件 代码: 第三:删除或注释-crossAxisAlignment:crossAxisAlignment.stretch
因为我不知道你想要的布局 只是为了修正错误。我们有三个选择 第一:使用-IntrinsicHeight小部件 代码: 第三:删除或注释-crossAxisAlignment:crossAxisAlignment.stretch
谢谢,但我得到了相同的错误-我更新并缩短了示例代码。谢谢,但我得到了相同的错误-我更新并缩短了示例代码。请帮助我解决这个问题,如果有listview作为行的第二个子行,该怎么办?请帮我解决这个问题,如果有listview作为行的第二个子行,该怎么办?
Scaffold(
appBar: AppBar(
title: Text('Edit Routine'),
),
body: ListView(
//padding: EdgeInsets.fromLTRB(10, 15, 10, 5),
children: <Widget>[
Text('ddedede'),
Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Flexible(
flex: 1,
child: Text('Set'),
fit: FlexFit.tight,
),
Flexible(
flex: 1,
child: Text('Reps'),
fit: FlexFit.tight,
),
Flexible(
flex: 1,
child: Text('lbs'),
fit: FlexFit.tight,
),
Flexible(
flex: 1,
child: Text('prev'),
fit: FlexFit.tight,
),
Flexible(
flex: 1,
child: Text('...'),
fit: FlexFit.tight,
),
],
),
// Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: <Widget>[
// SizedBox(
// height: 24,
// ),
// TextField(
// controller: TextEditingController(text: routineName),
// keyboardType: TextInputType.text,
// decoration: kTextFieldDecoration.copyWith(hintText: 'Name of routine')),
// SizedBox(
// height: 24,
// ),
// ],
// ),
],
),
);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Edit Routine'),
),
body: ListView(
//shrinkWrap: true,
//padding: EdgeInsets.fromLTRB(10, 15, 10, 5),
children: <Widget>[
Text('ddedede'),
IntrinsicHeight(
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Set'),
Text('Set'),
Text('Set'),
],
),
),
],
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Edit Routine'),
),
body: ListView(
shrinkWrap: true,
//padding: EdgeInsets.fromLTRB(10, 15, 10, 5),
children: <Widget>[
Text('ddedede'),
LimitedBox(
maxHeight: 200.0,
child: Row(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Set'),
Text('Set'),
Text('Set'),
],
),
),
],
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Edit Routine'),
),
body: ListView(
shrinkWrap: true,
//padding: EdgeInsets.fromLTRB(10, 15, 10, 5),
children: <Widget>[
Text('ddedede'),
Row(
// crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Set'),
Text('Set'),
Text('Set'),
],
),
],
),
);
}