flutter 解决键盘遮挡底部
时间: 2023-07-29 15:11:24 浏览: 181
flutter混合开发解决输入框被键盘遮挡的问题
5星 · 资源好评率100%
在 Flutter 中,可以使用 `SingleChildScrollView` 或 `ListView` 包裹页面的主体内容,以便在键盘弹出时可以滚动界面,避免被键盘遮挡。
另外,还可以使用 `ResizeAwareWidget` 监听键盘高度变化,并动态调整页面布局。
以下是一个简单的示例代码:
```dart
import 'package:flutter/material.dart';
import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
class KeyboardAwareScreen extends StatefulWidget {
@override
_KeyboardAwareScreenState createState() => _KeyboardAwareScreenState();
}
class _KeyboardAwareScreenState extends State<KeyboardAwareScreen> {
bool isKeyboardVisible = false;
@override
void initState() {
super.initState();
KeyboardVisibility.onChange.listen((bool visible) {
setState(() {
isKeyboardVisible = visible;
});
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Keyboard Aware Screen'),
),
body: SingleChildScrollView(
child: Column(
children: [
TextFormField(
decoration: InputDecoration(
labelText: 'Username',
),
),
TextFormField(
decoration: InputDecoration(
labelText: 'Password',
),
),
SizedBox(height: 16),
ElevatedButton(
onPressed: () {},
child: Text('Sign In'),
),
SizedBox(height: isKeyboardVisible ? MediaQuery.of(context).viewInsets.bottom : 0),
],
),
),
);
}
}
```
在这个示例中,我们使用 `KeyboardVisibility` 插件监听键盘的可见性,并根据键盘的可见性动态调整底部空白区域的高度。
阅读全文