私は、Flutter で、クリックするとリストにアイテムを追加するためのアラート ダイアログが表示されるフローティング アクション ボタンの下部にあるシンプルな To Do アプリを作成しようとしています。ボタンをクリックするたびに、キーボードがアクション ボタンを上に押し上げ、オーバーフロー エラーが発生します。キーボードを開いたときにアクション ボタンを上に押し上げないようにする方法はありますか? 以下は私が撮ったスナップショットです。スナップショットソースコードは以下の通りです。
import 'package:flutter/material.dart';
import '../model/todo_item.dart';
class ToDoScreen extends StatefulWidget {
@override
_ToDoScreenState createState() => _ToDoScreenState();
}
class _ToDoScreenState extends State<ToDoScreen> {
TextEditingController _textEditingController = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.blueAccent,
body: Column(
children: <Widget>[ToDoItem("Going for a Walk", "12 January, 2019")],
),
floatingActionButton: FloatingActionButton(
tooltip: 'Add Item',
child: Icon(Icons.add),
backgroundColor: Colors.red,
onPressed: _showFormDialog,
),
);
}
void _showFormDialog() {
var alert = AlertDialog(
content: Row(
children: <Widget>[
Expanded(
child: TextField(
controller: _textEditingController,
autofocus: true,
decoration: InputDecoration(
labelText: "Item",
hintText: "eg. Buy Vegetables",
icon: Icon(Icons.note_add)),
),
)
],
),
actions: <Widget>[
FlatButton(
onPressed: () {
// _handleSubmit(_textEditingController.text);
_textEditingController.clear();
},
child: Text("Save ToDo"),
),
FlatButton(
onPressed: () {
Navigator.pop(context);
},
child: Text("Cancel"),
)
],
);
showDialog(context: context, builder: (BuildContext context) => alert);
}
}
ベストアンサー1
私も同じ問題を抱えており、フローティング アクション ボタンが押し上げられてしまいます。
私は次のプロパティを使用してこれを解決しました:
resizeToAvoidBottomPadding: false, // fluter 1.x
resizeToAvoidBottomInset: false // fluter 2.x
親についてScaffold
。
あなたのコードでテストしたところ、問題も解決しました。