gpt4 book ai didi

flutter - 在堆栈和列中包装定位控件时出现 flutter 错误(一个RenderFlex被无限像素溢出)。

转载 作者:行者123 更新时间:2023-12-03 04:13:22 25 4
gpt4 key购买 nike

我有一个用例,其中我必须使用StackPositioned来制作一些重叠的小部件。但是我还必须将其包装在Column中。当我这样做时,我会得到一个错误

A RenderFlex overflowed by Infinity pixels on the bottom.
显示问题的最小示例:
import "package:flutter/material.dart";

class TestScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Example"),
),
body: Column(
children: [
Stack(children: [
cardWidget(),
]),
],
),
),
);
}

Widget cardWidget() {
return Positioned(
left: 10.0,
child: Card(
color: Colors.green,
child: Container(
height: 200,
width: 100,
),
),
);
}
}
如果我删除 left: 10,那么它可以正常工作,但是那不是我想要的。
完整的错误消息(我不太了解):
The following assertion was thrown while applying parent data.:
Incorrect use of ParentDataWidget.
The ParentDataWidget Positioned(left: 10.0) wants to apply ParentData of type StackParentData to a
RenderObject, which has been set up to accept ParentData of incompatible type FlexParentData.
Usually, this means that the Positioned widget has the wrong ancestor RenderObjectWidget. Typically,
Positioned widgets are placed directly inside Stack widgets.
The offending Positioned is currently placed inside a Column widget.
The ownership chain for the RenderObject that received the incompatible parent data was:
Semantics ← Card ← Positioned ← Column ← _BodyBuilder ← MediaQuery ←
LayoutId-[<_ScaffoldSlot.body>] ← CustomMultiChildLayout ← AnimatedBuilder ← DefaultTextStyle ← ⋯

最佳答案

这是从Flutter文档中获得的,用于Column类。
发生这种情况的一个常见原因是该列已放置在另一列中(没有在内部嵌套列周围使用Expanded或Flexible)。当Column布置其非灵活子级(那些在其周围既没有Expanded或Flexible的子级)时,它会赋予它们无限制的约束,以便他们可以确定自己的尺寸(传递无边界的约束通常会向子项发出信号,表示应该收缩包装其内容)。在这种情况下,解决方案通常是将内部列包装在Expanded中,以表明它应该占用外部列的剩余空间,而不是允许其占用任何所需的空间。
这足以了解问题所在

赋予了Stack无限制的约束,由于这些约束,您会遇到溢出错误。

但是,将其放入扩展的小部件中,可以解决该问题,因为扩展的是一种伸缩组件,它试图覆盖整个可用空间。然后,它为堆栈提供约束,以防止其溢出。
希望我能帮上忙。

关于flutter - 在堆栈和列中包装定位控件时出现 flutter 错误(一个RenderFlex被无限像素溢出)。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63175130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com