繁体   English   中英

如何在 Flutter 屏幕中央对齐列表视图中的所有小部件?

[英]How do I align all the widgets within list view at the center of the screen in Flutter?

在同一个正文中,我试图将我的所有小部件对齐到我的loginpage.dart文件的屏幕中心。 但我得到的结果是一切都在顶部。 我是 flutter 的初学者,很多东西我都不知道。 你能帮我写代码,让我在Listview中的所有小部件都在中心吗?

我的代码


 // ignore_for_file: prefer_const_constructors
    import 'package:flutter/material.dart';
    
    class LoginPage extends StatefulWidget {
      @override
      State<StatefulWidget> createState() => _State();
    }
    
    class _State extends State<LoginPage> {
      TextEditingController nameController = TextEditingController();
      TextEditingController passwordController = TextEditingController();
    
      @override
      Widget build(BuildContext context) {
        return SafeArea(
          child: Scaffold(
            body: Center(
              child: new ListView(
                children: <Widget>[
                  Container(
                    padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 5.0),
                    child: Text(
                      'ABC',
                      style: TextStyle(
                          color: Colors.red,
                          fontWeight: FontWeight.w500,
                          fontSize: 30),
                    ),
                  ),
                  Container(
                    padding: EdgeInsets.fromLTRB(10, 0, 10, 10),
                    child: TextField(
                      controller: nameController,
                      decoration: InputDecoration(
                        border: OutlineInputBorder(),
                        labelText: 'User Name',
                      ),
                    ),
                  ),
                  Container(
                    padding: EdgeInsets.fromLTRB(10, 10, 10, 0),
                    child: TextField(
                      obscureText: true,
                      controller: passwordController,
                      decoration: InputDecoration(
                        border: OutlineInputBorder(),
                        labelText: 'Password',
                      ),
                    ),
                  ),
                  SizedBox(
                    width: 8.0,
                    height: 8.0,
                    child: Card(child: Text('sheraspace')),
                  ),
                  Container(
                      height: 50,
                      padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
                      child: ElevatedButton(
                        child: Text('Submit'),
                        onPressed: () {
                          print(nameController.text);
                          print(passwordController.text);
                        },
                      )),
                ],
              ),
            ),
          ),
        );
      }
    }

垂直居中ListView Widget内的元素,我们可以使用shrinkWrap属性:

ListView(
  shrinkWrap: true,
  children: [
    ...
  ],
),

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM