Flutter layout 将小部件放置在垂直中心

Flutter layout 将小部件放置在垂直中心,flutter-layout,Flutter Layout,我在垂直放置电子邮件和移动文本字段时遇到问题 我尝试过使用中心小部件、mainAxisAlignment和crossAxisAlignment,但都没有用 passwordInputs() => Container( padding: EdgeInsets.all(20.0), child: Center( child: ListView( children: <Widget>[ Column(

我在垂直放置电子邮件和移动文本字段时遇到问题

我尝试过使用中心小部件、mainAxisAlignment和crossAxisAlignment,但都没有用

passwordInputs() => Container(
    padding: EdgeInsets.all(20.0),
    child: Center(
      child: ListView(
        children: <Widget>[
          Column(
            mainAxisAlignment: MainAxisAlignment.center,
            crossAxisAlignment: CrossAxisAlignment.center,
            children: <Widget>[
              _getEmail(),
              Padding(
                padding: EdgeInsets.only(top: 10.0),
              ),
              _getMobileNumber(),
              Padding(
                padding: EdgeInsets.only(top: 16.0),
              ),
              _getSubmit()
            ],
          ),
        ],
      ),
    ),
  );
}

Widget _getEmail() {
 return Container(
  margin: EdgeInsets.only(left: 4),
   child: TextField(
   maxLines: 1,
    decoration: InputDecoration(
    labelText: "Email*",
  ),
),
);
}

Widget _getMobileNumber() {
return Container(
margin: EdgeInsets.only(left: 4),
child: TextField(
  maxLines: 1,
   decoration: InputDecoration(
    labelText: "Mobile*",
   ),
  ),
 );
}
passwordInputs()=>容器(
填充:所有边缘设置(20.0),
儿童:中心(
子:ListView(
儿童:[
纵队(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.center,
儿童:[
_getEmail(),
填充物(
填充:仅限边缘设置(顶部:10.0),
),
_getMobileNumber(),
填充物(
填充:仅限边缘设置(顶部:16.0),
),
_getSubmit()
],
),
],
),
),
);
}
Widget_getEmail(){
返回容器(
边距:仅限边距组(左:4),
孩子:TextField(
maxLines:1,
装饰:输入装饰(
labelText:“电子邮件*”,
),
),
);
}
小部件_getMobileNumber(){
返回容器(
边距:仅限边距组(左:4),
孩子:TextField(
maxLines:1,
装饰:输入装饰(
labelText:“移动*”,
),
),
);
}

这些小部件显示在屏幕顶部。我需要将它们放在屏幕中央。

您所要做的就是在列表视图中添加一个
包覆面提取:true
,如下所示

Center(
    child: ListView(
      shrinkWrap: true,
      children: <Widget>[
        _getMobileNumber(),
        _getEmail()
      ],
    ),
  )
中心(
子:ListView(
收缩膜:对,
儿童:[
_getMobileNumber(),
_getEmail()
],
),
)

您不需要这个列。

您所要做的就是在listView中添加一个
shrinkWrap:true
,如下所示

Center(
    child: ListView(
      shrinkWrap: true,
      children: <Widget>[
        _getMobileNumber(),
        _getEmail()
      ],
    ),
  )
中心(
子:ListView(
收缩膜:对,
儿童:[
_getMobileNumber(),
_getEmail()
],
),
)
你不需要这个专栏