如何解决子重复错误?
Posted
技术标签:
【中文标题】如何解决子重复错误?【英文标题】:How can I resolve child duplication error? 【发布时间】:2021-02-21 00:03:10 【问题描述】:如何解决子重复错误:
错误:重复的命名参数“孩子”。 孩子:CenteredView(
这是我的代码:
Container(
child: RaisedButton(
onPressed: (),
child: Text(
'Alcoholic Beverages',
style: TextStyle(
decoration:TextDecoration.underline,
fontSize: 25,
),
),
),
child: CenteredView(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
NavigationBar()
]
)
)
),
]
),
);
【问题讨论】:
【参考方案1】:Container
小部件只能有一个孩子。
要布局多个子级,请将此小部件的子级设为 Row
、Column
或 Stack
等小部件。
【讨论】:
【参考方案2】:在您的 Container 中,您有两个孩子,而 Container 小部件只能容纳一个孩子。所以你需要使用一些可以有多个孩子的小部件。 Column 和 Row 允许您这样做。 检查此链接以阅读有关多子小部件的更多信息,与 Container 不同的是,Container 是单子小部件,列和行是多子小部件。 Multi-Child Widget
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:flutter_datetime_picker/flutter_datetime_picker.dart';
class selClass extends StatelessWidget
@override
Widget build(BuildContext context)
return MaterialApp(
home: sel(),
);
class sel extends StatefulWidget
@override
_selState createState() => _selState();
class _selState extends State<sel>
String _date = "Not set";
@override
Widget build(BuildContext context)
return Scaffold(
body: SafeArea(child:SingleChildScrollView(
child: Container( child: Column (
children: [
RaisedButton(
onPressed: (),
child: Text(
'Alcoholic Beverages',
style: TextStyle(
decoration:TextDecoration.underline,
fontSize: 25,
),
),
),
CenteredView(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
NavigationBar()
]
),
),
]
),
);
【讨论】:
【参考方案3】:Container 只能有一个 Child 。这就是您收到此错误的原因。如果您的视图是垂直的,则需要 Column ;如果您的视图是水平的,则需要 Row 。用它来解决你的问题:
Column :
Container(
child: Column(
children: [
RaisedButton(
onPressed: () ,
child: Text(
'Alcoholic Beverages',
style: TextStyle(
decoration: TextDecoration.underline,
fontSize: 25,
),
),
),
CenteredView(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[NavigationBar()])),
],
),
),
);
OR
Row :
Container(
child: Row(
children: [
RaisedButton(
onPressed: () ,
child: Text(
'Alcoholic Beverages',
style: TextStyle(
decoration: TextDecoration.underline,
fontSize: 25,
),
),
),
CenteredView(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[NavigationBar()])),
],
),
),
);
【讨论】:
以上是关于如何解决子重复错误?的主要内容,如果未能解决你的问题,请参考以下文章