首页 > 解决方案 > Flutter:如何在 Flutter 中使 ListView 的高度 match_parent

问题描述

ListView 的高度应该与窗口的高度相同。因此,当键盘打开时,用户可以向下滚动以查看键盘覆盖的小部件。并且小部件不应该改变它们的位置。我使用 Align 小部件来定位它们,并用 Stack 小部件包装。换句话说:它应该与 Instagram 登录页面完全一样。

标签: listviewflutterlayout

解决方案


我希望这会有所帮助:演示:https ://i.ibb.co/g7C3K7K/dmeo.gif

import 'package:flutter/material.dart';

class LoginPage extends StatefulWidget {
  @override
  _LoginPageState createState() => _LoginPageState();
}

class _LoginPageState extends State<LoginPage> {
  final key = GlobalKey<ScaffoldState>();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: key,
      body: SingleChildScrollView(
        child: Container(
          height: MediaQuery.of(context).size.height,
          width: MediaQuery.of(context).size.width,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              Text(
                "Welcome to the login page",
                style: Theme.of(context).textTheme.display1,
              ),
              TextField(
                decoration: InputDecoration(hintText: "Name"),
              ),
              FlatButton(
                  onPressed: () {
                    key.currentState.showSnackBar(SnackBar(
                      content:
                          Text("I won't say your name but stay home, stay safe!"),
                    ));
                  },
                  child: Text("Say my name"))
            ],
          ),
        ),
      ),
    );
  }
}


推荐阅读