【问题标题】:Flutter: How to make a ListView's height match_parent in FlutterFlutter:如何在 Flutter 中使 ListView 的高度 match_parent
【发布时间】:2020-07-23 05:42:57
【问题描述】:

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

【问题讨论】:

    标签: listview flutter layout


    【解决方案1】:

    我希望这会有所帮助: 演示: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"))
                ],
              ),
            ),
          ),
        );
      }
    }
    
    

    【讨论】:

    • 谢谢,但我想将按钮对齐到屏幕底部。因此,使用 SizedBox 方法的这种边距不会在不同高度的屏幕中响应
    • @AbdulazizAbduqodirov 检查最新编辑的答案
    • 谢谢。有效。还有一个问题:我们可以用 AppBar 做到这一点吗?
    • 如果你想要一个不会滚动的粘性应用栏,那么在你的脚手架中添加一个应用栏。如果您想要一个可以滚动的应用栏,请在列中添加应用栏。干杯
    • 我使用了粘性应用栏。但它影响到高度。添加 appbar 后,使用 SingleChildScrollView 包裹的 Container 被绘制得高于屏幕。所以底部对齐的按钮是不可见的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 2022-06-23
    • 2021-12-30
    • 2018-11-28
    • 2020-11-29
    • 2018-10-09
    相关资源
    最近更新 更多