无法居中列小部件

时间:2018-12-02 15:27:38

标签: android flutter flutter-layout

我是陌生的新手,我正在尝试将所有窗口小部件集中在列窗口小部件内,但无法正常工作。我尝试将列封装到中心窗口小部件中,但是它仍然相同,并且与屏幕顶部对齐。下面是我的代码,请看一下,让我知道我在做什么错。谢谢:)

enter image description here

import 'package:flutter/material.dart';
import 'package:shared_preferences/shared_preferences.dart';

class SignIn extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Material(
      child: Padding(
        padding: EdgeInsets.all(15.0),
        child: Column(
          children: <Widget>[
            Text(
              'SignIn Screen',
              style: TextStyle(fontSize: 26.0),
            ),
            Padding(
              padding: EdgeInsets.only(top: 30.0),
            ),
            TextField(
              maxLength: 25,
              decoration: InputDecoration(
                hintText: 'Enter username',
              ),
            ),
            TextField(
              maxLength: 25,
              decoration: InputDecoration(
                hintText: 'Enter password',
              ),
            ),
            Expanded(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.stretch,
                children: <Widget>[
                  RaisedButton(
                    child: Text('SignIn'),
                    onPressed: _signIn,
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }

  Future _signIn() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    await prefs.setBool('isLoggedIn', true);
  }
}

2 个答案:

答案 0 :(得分:2)

添加for并删除MainAxisAlignment.center

Expanded

答案 1 :(得分:0)

垂直居中

Column(
  mainAxisAlignment: MainAxisAlignment.center,
  children: <Widget>[ ... ],
)

水平居中

Column(
  crossAxisAlignment: CrossAxisAlignment.center,
  children: <Widget>[ ... ],
)

但是,如果该列包含其内容,则将其包装在“中心”小部件中

Center(
  child: Column(
    children: <Widget>[ ... ],
  ),
)
相关问题