gpt4 book ai didi

flutter - Flutter:如何在ListView的底部使按钮居中?

转载 作者:行者123 更新时间:2023-12-03 03:16:30 24 4
gpt4 key购买 nike

我需要将ListView中包含的按钮置于底部居中。所谓底部,是指在屏幕的底部,或者如果屏幕内容比屏幕的高度长,请在内容的末尾。

我可以使用带有Column小部件的Spacer来完成此操作,因为已定义了高度,但是我的屏幕上却输入了文本。如果我使用Column而不是ListView,则在键入时屏幕会溢出。

我怎么能

  • 在按钮底部居中,或者
  • 使用Column,但防止在键入时屏幕调整大小或溢出;我希望它可以滚动,或者在输入时让键盘覆盖屏幕内容。

  • 基本代码示例:

    return Scaffold(
    body: Center(
    child: Container(
    width: workingWidth,
    child: Center(
    child: ListView(children: <Widget>[
    ScreenHeader("Tell Us a Little About Yourself"),
    TextFormField(
    maxLines: 16,
    controller: bioController,
    autocorrect: true,
    textCapitalization: TextCapitalization.sentences,
    maxLength: 500,
    decoration: InputDecoration(
    contentPadding: EdgeInsets.all(paddingH5),
    focusedBorder: UnderlineInputBorder(
    borderSide: BorderSide(color: colorPrimary)),
    border: UnderlineInputBorder(
    borderSide: BorderSide(color: colorMuted)),
    hintText: "Enter your bio here...",
    hintStyle: textMuted,
    ),
    ),
    Spacer(), //This doesn't work because I am using a ListView instead of a Column
    RoundedButton(
    buttonText: 'Continue',
    buttonStyle: buttonPrimary,
    onPressed: () {}
    ),
    ],)
    ),
    ),
    ),
    );

    最佳答案

    要在打开键盘时使用没有黄色/黑色条纹错误的Column,您需要将其包装到SingleChildScrollView中,但是如果您不声明其Spacer父级的高度,则RenderFlex将无法使用。

    您可以使用MediaQuery.of(context).size.height来获取其上下文的屏幕大小并将其设置为Container

    最后,您可以使用以下方法获得所需的布局:

    return Scaffold(
    body: SingleChildScrollView(
    child: Container(
    width: workingWidth,
    height: MediaQuery.of(context).size.height,
    child: Column(
    children: <Widget>[
    ScreenHeader("Tell Us a Little About Yourself"),
    TextFormField(
    maxLines: 16,
    controller: bioController,
    autocorrect: true,
    textCapitalization: TextCapitalization.sentences,
    maxLength: 500,
    decoration: InputDecoration(
    contentPadding: EdgeInsets.all(paddingH5),
    focusedBorder: UnderlineInputBorder(
    borderSide: BorderSide(color: colorPrimary)),
    border: UnderlineInputBorder(
    borderSide: BorderSide(color: colorMuted)),
    hintText: "Enter your bio here...",
    hintStyle: textMuted,
    ),
    ),
    Spacer(),
    RoundedButton(
    buttonText: 'Continue',
    buttonStyle: buttonPrimary,
    onPressed: () {}
    ),
    ],
    ),
    ),
    ),
    );

    关于flutter - Flutter:如何在ListView的底部使按钮居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57939237/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com