gpt4 book ai didi

Flutter: float 操作按钮固定位置

转载 作者:IT王子 更新时间:2023-10-29 07:19:30 28 4
gpt4 key购买 nike

我有以下代码:

return Scaffold(
appBar: AppBar(
title: Text('Sample Code'),
),
body: ListView(
padding: const EdgeInsets.all(20.0),
children: <Widget>[
TextField(
decoration: InputDecoration(labelText: "Text"),
),
TextField(
decoration: InputDecoration(labelText: "Text"),
),
TextField(
decoration: InputDecoration(labelText: "Text"),
),
],
),
bottomNavigationBar: BottomAppBar(
child: Container(
height: 50.0,
),
),
floatingActionButton: FloatingActionButton(
onPressed: () {},
child: Icon(Icons.add),
),
floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
);

每当键盘出现以将文本输入到 TextField 时,FloatingActionButton 就会向上移动到键盘顶部,如下所示:

FloatingActionButton

我想要的是按钮停留在底部导航栏中,并且在键盘出现时不会移动。我将 resizeToAvoidBottomPadding: false, 添加到 Scaffold 中,这会阻止按钮移动,但也会阻止我的 ListView 移动以在键盘输入时保持可见出现。

最佳答案

将 float 操作按钮包裹在 positioned widget 中对我不起作用。但是,结合在您的脚手架中添加属性

resizeToAvoidBottomPadding: false,

您还可以使用带有填充的 SingleChildScrollView 小部件,使用 MediaQuery.of 方法...

return Scaffold(
resizeToAvoidBottomInset: false,
backgroundColor: Colors.lightBlueAccent,
floatingActionButton: FloatingActionButton(
backgroundColor: Colors.lightBlueAccent,
child: Icon(Icons.add),
onPressed: () {
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (context) => SingleChildScrollView(
child: Container(
padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom),
child: AddTaskScreen())),
backgroundColor: Colors.transparent);
},
),

关于Flutter: float 操作按钮固定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56308831/

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