User interface 向布局颤振添加特殊选项
我有以下代码:User interface 向布局颤振添加特殊选项,user-interface,dart,flutter,alignment,User Interface,Dart,Flutter,Alignment,我有以下代码: new Container( padding: new EdgeInsets.only( top: 20.0, ), alignment: FractionalOffset.centerRight, child: new GestureDetector( child: new Text('Forgot password?', style: new
new Container(
padding: new EdgeInsets.only(
top: 20.0,
),
alignment: FractionalOffset.centerRight,
child: new GestureDetector(
child: new Text('Forgot password?', style: new TextStyle(color: Color(0xFF2E3233))),
),
),
new Container(
width: 300.0,
height: 45.0,
alignment: FractionalOffset.center,
decoration: new BoxDecoration(
color: const Color(0xFF2E3233),
borderRadius: new BorderRadius.all(const Radius.circular(30.0)),
),
child: new Text("Sign in",style: new TextStyle(color: Colors.white,fontWeight: FontWeight.bold,letterSpacing: 0.3,),),
),
new Container(
padding: new EdgeInsets.only(
top: 20.0,
),
alignment: FractionalOffset.center,
child: new Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new GestureDetector(
child: new Text('Don\'t have an account?', style: new TextStyle(color: Color(0xFF2E3233))),
),
new GestureDetector(
child: new Text('Register.', style: new TextStyle(color: Color(0xFF84A2AF), fontWeight: FontWeight.bold),),
onTap: moveToRegister,
),
],
),
),
新容器(
填充:仅限新边设置(
排名:20.0,
),
对齐方式:分馏loffset.centerRight,
儿童:新的手势检测器(
子项:新文本('忘记密码?',样式:新文本样式(颜色:颜色(0xFF2E33233)),
),
),
新容器(
宽度:300.0,
身高:45.0,
对齐:分馏loffset.center,
装饰:新盒子装饰(
颜色:常量颜色(0xFF2E33233),
borderRadius:新的borderRadius.all(常数半径圆形(30.0)),
),
子项:新文本(“登录”,样式:新文本样式(颜色:颜色。白色,字体权重:字体权重。粗体,字母间距:0.3,),),
),
新容器(
填充:仅限新边设置(
排名:20.0,
),
对齐:分馏loffset.center,
孩子:新的一排(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
新手势检测器(
子项:新文本('没有帐户?',样式:新文本样式(颜色:颜色(0xFF2E33233)),
),
新手势检测器(
子项:新文本('寄存器'),样式:新文本样式(颜色:颜色(0xFF84A2AF),字体权重:字体权重.bold),
onTap:moveToRegister,
),
],
),
),
这就是结果:但我想做到这一点:
编辑: 构建方法:
@override
Widget build(BuildContext context) {
return new Stack(
children: <Widget>[
// The containers in the background
new Column(
children: <Widget>[
new Container(
height: MediaQuery.of(context).size.height * .44,
color: const Color(0xFF84A2AF),
padding: new EdgeInsets.only(
top: 50.0,
),
child: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
new Image.asset('assets/app_logo_transparent_bg.png',
height: 100.0,
width: 100.0,
),
],
),
),
new Container(
height: MediaQuery.of(context).size.height * .56,
color: Colors.white,
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new Align(
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: buildSubmitButtons(),
),
),
],
)
/*child: new Align(
alignment: Alignment.bottomCenter,
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: buildSubmitButtons(),
),
),*/
),
],
),
// The card widget with top padding,
// incase if you wanted bottom padding to work,
// set the `alignment` of container to Alignment.bottomCenter
new Container(
alignment: Alignment.topCenter,
padding: new EdgeInsets.only(
top: MediaQuery.of(context).size.height * .33,
right: 15.0,
left: 15.0),
child: new Container(
height: 130.0,
width: MediaQuery.of(context).size.width,
child: new Card(
color: Colors.white,
elevation: 2.0,
child: new Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: buildInputs(),
),
),
),
)
],
);
}
@覆盖
小部件构建(构建上下文){
返回新堆栈(
儿童:[
//背景中的容器
新专栏(
儿童:[
新容器(
高度:MediaQuery.of(context).size.height*.44,
颜色:常量颜色(0xFF84A2AF),
填充:仅限新边设置(
排名:50.0,
),
子:新列(
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
新建Image.asset('assets/app_logo_transparent_bg.png',
高度:100.0,
宽度:100.0,
),
],
),
),
新容器(
高度:MediaQuery.of(context).size.height*.56,
颜色:颜色,白色,
子:新列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
新对齐(
子:新列(
mainAxisAlignment:mainAxisAlignment.center,
子项:buildSubmitButtons(),
),
),
],
)
/*子:新对齐(
对齐:对齐.bottomCenter,
子:新列(
mainAxisAlignment:mainAxisAlignment.center,
子项:buildSubmitButtons(),
),
),*/
),
],
),
//带有顶部填充的卡片小部件,
//如果你想让垫底起作用,
//将容器的“alignment”设置为alignment.bottomCenter
新容器(
对齐:alignment.topCenter,
填充:仅限新边设置(
顶部:MediaQuery.of(context).size.height*.33,
右图:15.0,
左:15.0),
子容器:新容器(
身高:130.0,
宽度:MediaQuery.of(context).size.width,
孩子:新卡(
颜色:颜色,白色,
标高:2.0,
子:新列(
crossAxisAlignment:crossAxisAlignment.stretch,
子项:buildInputs(),
),
),
),
)
],
);
}
我试了这么多,但似乎没有任何帮助?如何将布局与底部对齐…只需对容器(.56)进行一些更改,移除
align
小部件,拉伸列,并在列中添加一个展开的项,以填充可用空间
new Container(
height: MediaQuery.of(context).size.height * .56,
color: Colors.white,
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Expanded(
child: Container(),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: new Column(
mainAxisAlignment: MainAxisAlignment.end,
children: buildSubmitButtons(),
),
),
],
)
/*child: new Align(
alignment: Alignment.bottomCenter,
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: buildSubmitButtons(),
),
),*/
),
新容器(
高度:MediaQuery.of(context).size.height*.56,
颜色:颜色,白色,
子:新列(
mainAxisAlignment:mainAxisAlignment.center,
crossAxisAlignment:crossAxisAlignment.stretch,
儿童:[
扩大(
子级:容器(),
),
填充物(
填充:常数边集全部(8.0),
子:新列(
mainAxisAlignment:mainAxisAlignment.end,
子项:buildSubmitButtons(),
),
),
],
)
/*子:新对齐(
对齐:对齐.bottomCenter,
子:新列(
mainAxisAlignment:mainAxisAlignment.center,
子项:buildSubmitButtons(),
),
),*/
),
您可能需要将您的“忘记密码”移到列中展开的小部件上方。请添加您的生成方法,以检查父级container@diegoveloper请参阅更新的Qestion。