【问题标题】:RenderFlex overflowed due to Navigator and Keyboard由于导航器和键盘,RenderFlex 溢出
【发布时间】:2021-03-09 17:31:09
【问题描述】:

我有一个带有以下代码的屏幕:

Column(
                                children: [
                                  SvgPicture.asset(
                                    'images/startChat.svg',
                                    height: screenHeight / 4,
                                  ),
                                  SizedBox(
                                    height: 30.0,
                                  ),
                                  Text(
                                    'No Conversation Yet!',
                                    style: TextStyle(
                                        color: Color(0xff454F63),
                                        fontWeight: FontWeight.w600,
                                        fontSize: 20.0),
                                  ),
                                  
                                  FlatButton(
                                    child: Text(
                                      'Start a Chat',
                                      style: TextStyle(color: mainColor),
                                    ),
                                    onPressed: () => Navigator.push(
                                        context,
                                        MaterialPageRoute(
                                            builder: (context) => SearchPage(
                                                  isFromChat: true,
                                                ))),
                                  )
                                ],)
                    

当单击平面按钮时,我们导航到搜索页面,其中文本字段自动启用,因此键盘弹出。在这个过程中,几乎没有滞后,我得到一个错误:

I/flutter (25675):══╡ 渲染库发现异常
╞═════════════════════════════════════════════════ ════════

I/flutter (25675):布局期间抛出以下断言:
I/flutter (25675):一个 RenderFlex 在底部溢出了 120 个像素。
我/颤振(25675):
I/flutter (25675):相关的导致错误的小部件是:
I/flutter (25675): 列文件:.dart:64:31
我/颤振(25675):
I/flutter (25675):溢出的 RenderFlex 的方向为 Axis.vertical。
我尝试将 Column 小部件放在 Stack 中,甚至将 resizeToAvoidBottomInset: false,
但没有任何效果,如何解决这个问题?

【问题讨论】:

    标签: flutter dart flutter-layout


    【解决方案1】:

    将您的 Column 包装在 SingleChildScrollView 中,以便当由于键盘而没有足够空间显示所有行时,该列可以滚动。

    https://api.flutter.dev/flutter/widgets/SingleChildScrollView-class.html

    【讨论】:

    • 是的,成功了!我的专栏从来没有遇到过问题,但是当我引入可编辑的 TextField 并且键盘需要空间时,问题就出现了。用 SingleChildScrollView 包装它就可以了
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 2021-04-02
    • 2021-11-17
    • 2020-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    相关资源
    最近更新 更多