Flutter 实际上,底部溢出123像素意味着什么

Flutter 实际上,底部溢出123像素意味着什么,flutter,Flutter,我正在学习颤振,目前从android切换到颤振。在颤振中,我通常会遇到类似这样的错误 底部溢出234个像素或renderbox溢出340个像素。我通过增加小部件的高度解决了这个问题。如果是这样,那么如何知道小部件的大小。我的意思是在安卓系统中,我们可以将布局高度声明为包装内容,并且它可以完美工作。请向我解释这是如何实现的我是否可以避免这种情况,因为如果我通过更改一个设备中小部件的高度来解决问题,那么如果其他屏幕尺寸的设备中出现相同的错误,那么我是否可以避免这种情况?下面是一个抛出错误的图像。忽略

我正在学习颤振,目前从android切换到颤振。在颤振中,我通常会遇到类似这样的错误
底部溢出234个像素
renderbox溢出340个像素
。我通过增加小部件的高度解决了这个问题。如果是这样,那么如何知道小部件的大小。我的意思是在安卓系统中,我们可以将布局高度声明为包装内容,并且它可以完美工作。请向我解释这是如何实现的我是否可以避免这种情况,因为如果我通过更改一个设备中小部件的高度来解决问题,那么如果其他屏幕尺寸的设备中出现相同的错误,那么我是否可以避免这种情况?下面是一个抛出错误的图像。忽略红色错误,请查看屏幕下方的错误。提前感谢


!

如果您想为小部件提供固定的宽度和高度,请使用SizedBox包装它。 您可以指定固定的宽度和高度,您的子部件将是精确的尺寸

如果希望其中一个维度固定,另一个维度与父窗口小部件一样大,可以尝试以下操作:

SizedBox(
  width: double.inifinity,
  height: 50.0
  child: Conttainer()
 )
如果您担心给定固定尺寸。您可以根据屏幕大小的比例给出高度或宽度。您可以按如下方式获得屏幕的高度和宽度:

SizedBox(
  width: double.inifinity,
  height: 50.0
  child: Conttainer()
 )
double width=MediaQuery.of(context).size.width

使用上述值为小部件指定宽度,如下所示:

Container(
  width:  MediaQuery.of(context).size.width * 0.8,
  height: 100,
 )
回答评论中的问题。可以执行以下操作以使用动态内容包装文本

ConstrainedBox(
      constraints: BoxConstraints(
        maxWidth: 100
      ),
      child: Text(
        'ADASFASF ssss'
      ),
    )

如果文本小部件的宽度超过100像素,上面的代码将把文本包装到下一行。因为我们对高度没有任何限制。

当子窗口小部件的最小大小大于父窗口小部件的限制(宽度和/或高度)时,会发生溢出

这意味着您可以:

  • 使父窗口小部件变大(例如:SizedBox(高度:,宽度:,)
  • 使孩子变小(例如:使用FittedBox(fit:BoxFit.scaleDown)小部件)
尽管第一种方法不允许您的大小大于父窗口小部件的父窗口小部件。这应该足够让孩子们相对于他们的父母成长,而不是相反

在您的情况下,您的文本+图像小部件似乎占用了太多的空间。我建议将它包装在一个FittedBox中,这样可以缩小子部件的比例,直到它适合您的底部栏

FittedBox(
适合度:BoxFit.scaleDown,
子项:_buildChildWidget(),
)
然后,您可以将其包装到其他小部件中,以构建所需的布局(行、扩展、灵活、LayoutBuilder等)

因为溢出问题通常是因为文本或图像太大而发生的。一个好的练习是,在将文本大小设置为设备的可访问性选项允许的最大值的同时,尝试使应用程序正常工作。例如,通过设置相对于文本大小的图像大小,可以对图像执行相同的操作


填充和边距也会导致问题,因为它们为子小部件留下的空间较少。

假设容器小部件包含文本小部件,并且文本数据是从服务器动态接收的,并且数据可以是一行到一行的,在这种情况下,我如何知道小部件的大小?考虑到不同的设备具有不同的屏幕大小,在这种情况下,如果您的高度为2倍。无穷大,文本将换行到下一行,因此您可以尝试使用ConstrainedBox换行文本。