【问题标题】:How can I resolve child duplication error?如何解决子重复错误?
【发布时间】:2023-03-27 18:20:01
【问题描述】:

如何解决子重复错误:

错误:重复的命名参数“孩子”。 孩子: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()
                         ]
                     )
                 )
             ),
               ]
        ),

    );
  }
}

【问题讨论】:

    标签: flutter flutter-layout flutter-web


    【解决方案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()])),
                  ],
                ),
              ),
            );
          }
        }
        

        【讨论】:

          猜你喜欢
          • 2016-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多