颤动给我巨大的偏头痛:"positional arguments must occur before named arguments"



抛出错误@Scaffold表示位置参数过多,另一个@Padding表示位置参数必须出现在命名参数之前。

import 'package:flutter/material.dart';
void main() =>
    runApp(MaterialApp
    (debugShowCheckedModeBanner: false,
     home: LoginScreen()
     )
    );
class LoginScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: Colors.white,
        body: Container(
            child: Column(
          children: <Widget>[
            Container(
                height: 260,
                decoration: BoxDecoration(
                    image: DecorationImage(
                        image: AssetImage("assets/images/RightLogo.jpg"),
                        fit: BoxFit.fill))),
            Positioned(
              child: Container(
                margin: EdgeInsets.only(top: 25),
                child: Center(
                  child: Text(
                    "Login",
                    style: TextStyle(
                        color: Colors.blue,
                        fontSize: 30,
                        fontWeight: FontWeight.bold),
                  ),
                ),
              ),
            )
          ],
        ),
      ),
      Padding(
        padding: EdgeInsets.all(30.0),
        child: Column(
           children: <Widget>[
             Container(
               padding: EdgeInsets.all(5),
               decoration: BoxDecoration(
                 color: Colors.white,
                 borderRadius: BorderRadius.circular(10),
                 boxShadow: [
                   BoxShadow(
                     color: Color.fromRGBO(143, 148, 251, .8),
                     blurRadius: 20.0,
                     offset: Offset(0, 10)
                   )
                 ]
               ),
               child: Column(
                 children: <Widget>[
                   Container(
                     padding: EdgeInsets.all(8.0),
                     decoration: BoxDecoration(
                       border: Border(bottom: BorderSide(color: Colors.grey[100]))
                     ),
                     child: TextField(
                       decoration: InputDecoration(
                         border: InputBorder.none,
                         hintText: "User Name/Login",
                         hintStyle: TextStyle(color: Colors.grey[400])
                       ),
                     )
                   ),
                    Container(
                     padding: EdgeInsets.all(8.0),
                     child: TextField(
                       decoration: InputDecoration(
                         border: InputBorder.none,
                         hintText: "Password",
                         hintStyle: TextStyle(color: Colors.grey[400])
                       ),
                     )
                   )
                 ],
               ),
             ),
             SizedBox(height: 30,),
             Container(
               height: 50,
               decoration: BoxDecoration(
                 borderRadius: BorderRadius.circular(10),
                 gradient: LinearGradient(
                   colors: [
                     Color.fromRGBO(143, 148, 251, 1),
                     Color.fromRGBO(143, 148, 251, .6),
                   ]
                )
               ),
             )
        ])
     ),
    );
  }
}

那是什么原因呢?我知道这是我的一个错误,但如果有人指出这个缺陷,我将不胜感激。另外,代码的其余部分可能是无用的。

在对缺少的代码发表评论后编辑。很抱歉给您带来不便。

这是因为填充不在列小部件的子列表中。它被用作scaffold的位置参数。

只需ctrl+x您的填充并将其粘贴到列的子项中。

Column(
          children: <Widget>[
            Container(
                height: 260,
                decoration: BoxDecoration(
                    image: DecorationImage(
                        image: AssetImage("assets/images/RightLogo.jpg"),
                        fit: BoxFit.fill))),
            Positioned(
              child: Container(
                margin: EdgeInsets.only(top: 25),
                child: Center(
                  child: Text(
                    "Login",
                    style: TextStyle(
                        color: Colors.blue,
                        fontSize: 30,
                        fontWeight: FontWeight.bold),
                  ),
                ),
              ),
            ),
            Padding(
                padding: EdgeInsets.all(30.0),
                child: Column(children: <Widget>[
                  Container(
                    padding: EdgeInsets.all(5),
                    decoration: BoxDecoration(
                        color: Colors.white,
                        borderRadius: BorderRadius.circular(10),
                        boxShadow: [
                          BoxShadow(
                              color: Color.fromRGBO(143, 148, 251, .8),
                              blurRadius: 20.0,
                              offset: Offset(0, 10))
                        ]),
                    child: Column(
                      children: <Widget>[
                        Container(
                            padding: EdgeInsets.all(8.0),
                            decoration: BoxDecoration(
                                border: Border(
                                    bottom:
                                        BorderSide(color: Colors.grey[100]))),
                            child: TextField(
                              decoration: InputDecoration(
                                  border: InputBorder.none,
                                  hintText: "User Name/Login",
                                  hintStyle:
                                      TextStyle(color: Colors.grey[400])),
                            )),
                        Container(
                            padding: EdgeInsets.all(8.0),
                            child: TextField(
                              decoration: InputDecoration(
                                  border: InputBorder.none,
                                  hintText: "Password",
                                  hintStyle:
                                      TextStyle(color: Colors.grey[400])),
                            ))
                      ],
                    ),
                  ),
                  SizedBox(
                    height: 30,
                  ),
                  Container(
                    height: 50,
                    decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(10),
                        gradient: LinearGradient(colors: [
                          Color.fromRGBO(143, 148, 251, 1),
                          Color.fromRGBO(143, 148, 251, .6),
                        ])),
                  )
                ])),
          ],
        ),

相关内容

最新更新