首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将AnimatinonContainer恢复到以前的状态?

如何将AnimatinonContainer恢复到以前的状态?
EN

Stack Overflow用户
提问于 2021-02-19 17:29:27
回答 2查看 21关注 0票数 0

当键盘关闭时,如何使AnimatedContainer恢复到原来的状态(1)?目前,通过onTap更改容器的位置

代码语言:javascript
复制
Widget _formAuth(String labelForm, String labelButton, void func()) {
    return AnimatedContainer(
      duration: Duration(seconds: 1),
      curve: Curves.ease,
      margin: EdgeInsets.fromLTRB(13, _marginFormAuth, 13, 50),
Widget _inputLoginOrPassword(
      Icon icon, String hint, TextEditingController controller, bool obscure) {
    return Container(
      margin: EdgeInsets.fromLTRB(10, 35, 10, 0),
      child: TextField(
        onTap: () {
          setState(() {
            _marginFormAuth = 20;
          });
        },

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-19 17:39:46

您可以在state类中定义一个布尔变量,并在build方法中为其赋值,如下所示:

代码语言:javascript
复制
bool isKeyboardOpened;

build () {
isKeyboardOpened = MediaQuery.of(context).viewInsets.bottom > 0;
_marginFormAuth = isKeyboardOpened ? 20 : whateverYouHadBefore;
...
}

这种在打开键盘时移动容器的解决方案不是最好的方法,但是,您应该修改代码背后的整个概念,并使用在您聚焦字段时自然会滚动的滚动:)

票数 1
EN

Stack Overflow用户

发布于 2021-02-19 17:46:11

要检测键盘状态,请使用:

https://github.com/adee42/flutter_键盘_可见性

代码语言:javascript
复制
import 'package:keyboard_visibility/keyboard_visibility.dart';

@protected
void initState() {
  super.initState();

  KeyboardVisibilityNotification().addNewListener(
    onChange: (bool visible) {
      print(visible);
    },
  );
}

要为容器设置动画,请使用AnimationController而不是AnimatedContainer:

https://flutter.dev/docs/development/ui/animations/tutorial

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66274935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档