我有以下代码:
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,
);
Run Code Online (Sandbox Code Playgroud)
每当键盘出现并输入文本时,就会TextField向上FloatingActionButton移动到键盘顶部,如下所示:
我想要的是按钮保留在底部导航栏中,并且在键盘显示时不移动。我添加resizeToAvoidBottomPadding: false,了Scaffold,它可以防止按钮移动,但也阻止我ListView移动以在键盘出现时保持可见。
Dan*_*mme 10
将浮动操作按钮包裹在 a 内positioned widget对我来说不起作用。但是,结合在脚手架中添加属性
resizeToAvoidBottomPadding:假,
您还可以使用 MediaQuery.of 方法将 SingleChildScrollView 小部件与填充一起使用...
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);
},
),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11005 次 |
| 最近记录: |