【问题标题】:'A RenderFlex overflowed' after displaying the keyboard -Flutter显示键盘后出现“A RenderFlex 溢出”-Flutter
【发布时间】:2021-05-15 07:57:40
【问题描述】:

我是 Flutter 的初学者,我做了这个登录页面,在 Android 模拟器中运行后看起来不错:

Here is a screenshot of the result(Column() 占据整个页面)

但是在显示键盘I get this result 之后,我收到了这个错误消息A RenderFlex overflowed by 8.7 pixels on the bottom 并且 Column() 并没有占据整个页面。

我在 google 中搜索并阅读了一些答案,告诉我使用 Listview 可以解决问题,但对我来说这不是一种有效的方法,因为我认为在我不使用的页面中使用列表需要滚动是没用的。

这是我的代码:

import 'package:flutter/material.dart';
class Login extends StatefulWidget {
  const Login({Key key}) : super(key: key);
  @override
  _LoginState createState() => _LoginState();
}
class _LoginState extends State<Login> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: Padding(
            padding: EdgeInsets.all(20.0),
            child: Column(
              children: [
                TextField(onChanged: (v) {}),
                TextField(onChanged: (v) {}),
                TextButton(onPressed: () {}, child: Text('Login')),
                TextButton(onPressed: () {}, child: Text('Register')),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

【问题讨论】:

  • 为什么觉得不需要滚动?如果有人在横向模式下使用您的应用,而您的元素太大而无法显示在屏幕上怎么办?
  • 嘿!,感谢您的关注,我的问题的目的是了解为什么列变得太小(甚至比显示键盘后的可用区域还小),请参阅上图截图来理解我在说什么
  • 你能告诉我们你的main函数吗?你是直接在main 中使用Login 还是里面有别的东西?还有模拟器的详细信息。因为我没有得到这个。

标签: flutter


【解决方案1】:

在Scaffold中设置属性resizeToAvoidBottomPaddingfalse可以解决问题

【讨论】:

    猜你喜欢
    • 2021-06-21
    • 2021-11-17
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2021-03-09
    • 2018-09-03
    • 2021-12-06
    • 1970-01-01
    相关资源
    最近更新 更多