我正在开发Flutter应用程序,但无法弄清楚为什么我的图标按钮不在页面中间居中。
我将代码包装在Center()
这是我的页面:
这是我的代码:
import "package:flutter/material.dart";
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class LogInScreen extends StatefulWidget {
@override
_LogInScreenState createState() => new _LogInScreenState();
}
class _LogInScreenState extends State<LogInScreen> {
String _email, _password;
@override
Widget build(BuildContext context) {
return new Scaffold(
body: Center(
child: ListView(
children: <Widget>[
Column(children: <Widget>[
new Container(
padding: (EdgeInsets.only(top: 50)),
child: Text(
"Sign In",
style: TextStyle(
fontSize: 40,
),
),
),
new Container(
padding: (EdgeInsets.only(top: 50, left: 35, right: 35)),
child: Column(children: <Widget>[
new Form(
child: new Column(children: <Widget>[
Padding(
padding: EdgeInsets.only(top: 20),
child: new RaisedButton(
onPressed: () {},
color: Colors.blue,
textColor: Colors.white,
child: const Text('Login'),
),
),
])),
])),
new Container(
padding: EdgeInsets.only(top: 40),
child: Column(
children: <Widget>[
new Text("Or login with"),
],
),
),
]),
new Center(
child: new Row(
children: <Widget>[
new IconButton(
icon: Icon(FontAwesomeIcons.facebookF),
color: Colors.blue,
),
new IconButton(
icon: Icon(FontAwesomeIcons.google),
color: Colors.blue,
),
],
)),
],
)),
);
}
}
我删除了texts字段,以使代码适合。 我希望你能帮帮我, 谢谢您的帮助!
答案 0 :(得分:8)
将 IconButton 的 padding 设置为 0,如下所示:
IconButton(
padding: EdgeInsets.zero,
...
)
答案 1 :(得分:1)
一些更改:
为您的shrinkWrap
添加ListView
ListView(
shrinkWrap: true,
...
将mainAxisAlignment
MainAxisAlignment.center添加到您的Row
new Center(
child: new Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
new IconButton(
...
答案 2 :(得分:1)
基本上Center()
小部件仅使行本身居中,而不是行中的小部件。
要对齐行中的子级,请使用mainAxisAlignment: MainAxisAlignment.center
进行水平对齐,使用crossAxisAlignment: CrossAxisAlignment.center
进行垂直对齐,请查看更多here
因此您的代码应该是:
` new Center(
child: new Row(
mainAxisAlignment: MainAxisAlignment.center
children: <Widget>[
new IconButton(
icon: Icon(FontAwesomeIcons.facebookF),
color: Colors.blue,
),
new IconButton(
icon: Icon(FontAwesomeIcons.google),
color: Colors.blue,
),
],
)),`
答案 3 :(得分:0)
所有列出的解决方案均不起作用。对我来说,唯一的解决方案是将IconButton放在SizedBox中。
SizedBox(
width: double.infinity,
child: IconButton(
icon: FaIcon(FontAwesomeIcons.moneyBillWave),
iconSize: 80,
onPressed: () {},
),
),