首页 > 解决方案 > 如何在键盘外观上为 Flutter 布局设置动画

问题描述

我正在构建一个 Flutter 应用程序,主要用于 iOS。

我的一个视图有一个文本字段,当您点击它时会出现 iOS 键盘。问题是 - 布局不会像在原生 iOS 应用程序中那样平滑更改。相反,即使在键盘打开动画完成之前,它也会立即跳转到最终可用的屏幕高度。

我尝试将我的 SafeArea 元素包装进去AnimatedSize-AnimatedContainer它没有帮助。

我的布局代码:

SafeArea(child:
  Column(children:[
    TextField(...)
  ])
)

键盘出现时如何使布局平滑调整大小?

预期的:

我期望它是怎样的.gif

实际的

它是怎么回事 - Flutter app.gif 中的延迟调整大小

标签: iosdartflutter

解决方案


我使用类似的东西:

AnimatedPadding(
        padding: MediaQuery.of(context).viewInsets,
        duration: const Duration(milliseconds: 100),
        curve: Curves.decelerate,
        child: ....
    )

这会根据 viewInsets(软件键盘高度)对填充进行动画处理。


推荐阅读