在Flutter中获取键盘高度

Ale*_*lia 3 dart flutter

有什么办法可以在Flutter中获得开放式键盘的高度?我正在尝试bottomSheet通过打开状态下的键盘高度来填充小部件。

Hem*_*Raj 11

通常会viewInsets提供有关任何会模糊ui的系统ui的数据。要了解键盘高度,您只需检查的bottom属性viewInsets,当键盘在屏幕上时,它将保持键盘的高度,否则为零。

您可以检查viewInsetsMediaQuery这样的:

MediaQuery.of(context).viewInsets.bottom
Run Code Online (Sandbox Code Playgroud)

注意:bottom即使某些其他系统ui从底部遮盖了颤动ui,该属性也可能有价值。

希望有帮助!

  • 非常感谢您的回答,但是您知道如何在键盘不在屏幕上时获得键盘高度吗?我发现许多本机应用程序可以在键盘不在屏幕上时预先显示一个与键盘高度相同的容器。干杯。 (4认同)

fzy*_*cjy 11

MediaQuery.of(context).viewInsets解决方案并不为我工作。它总是说zero即使键盘打开。此外,查看此答案中最高投票的评论,将其用作键盘指示器是一个坏主意。

因此,这是一个单行解决方案:

final viewInsets = EdgeInsets.fromWindowPadding(WidgetsBinding.instance.window.viewInsets,WidgetsBinding.instance.window.devicePixelRatio);
Run Code Online (Sandbox Code Playgroud)

然后做任何你想做的事(例如viewInsets.bottom是键盘高度):)

  • 如何在不打开键盘的情况下获取键盘高度。我的要求与打开表情符号框作为键盘高度的覆盖层有关,该键盘高度应与键盘高度相同。有什么建议,请分享。谢谢。 (2认同)