在键盘弹出时获取键盘高度
- 继承 WidgetsBindingObserver 。
- 在 initState 内添加 WidgetsBinding.instance.addObserver(this); 。
- 在 dispose 内添加 WidgetsBinding.instance.removeObserver(this); 。
- 重写 didChangeMetrics,如下:
@override
void didChangeMetrics() {
super.didChangeMetrics();
// 键盘高度
final double viewInsetsBottom = EdgeInsets.fromWindowPadding(
WidgetsBinding.instance.window.viewInsets,
WidgetsBinding.instance.window.devicePixelRatio)
.bottom;
// 打印键盘高度
print(viewInsetsBottom);
setState(() {
bottom = viewInsetsBottom;
});
}
完整代码:
import 'package:flutter/material.dart';
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<StatefulWidget> createState() => _HomePageState();
}
class _HomePageState extends Sta