如何解决子重复错误?

时间:2020-11-09 03:06:09

标签: flutter flutter-layout flutter-web

如何解决子重复错误:

错误:名称参数'child'重复。 孩子: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()
                         ]
                     )
                 )
             ),
               ]
        ),

    );
  }
}

3 个答案:

答案 0 :(得分:0)

Container小部件只能有一个孩子。 要布置多个子项,请将此小部件的子级设置为RowColumnStack之类的小部件。

答案 1 :(得分:0)

在您的容器中,您有两个孩子,而容器小部件只能带一个孩子。因此,您需要使用一些可以有多个孩子的小部件。 允许您执行此操作。 检查此链接以了解有关多子级小部件的更多信息,这与Container是单子级小部件,Column和Row是多子级小部件不同。 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()
                         ]
                     ),
                 ),
               ]
        ),

    );
  }
}



答案 2 :(得分:0)

容器只能有一个孩子。这就是为什么您会收到此错误。如果视图是垂直的,则需要列;如果视图是水平的,则需要行。使用它来解决您的问题:

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()])),
          ],
        ),
      ),
    );
  }
}