Flutter 使用列内堆栈使底部溢出无限像素
我正在使用堆栈小部件在屏幕内显示动画。我只使用了70%的屏幕,其余的我都没有使用。我想在那里展示一些别的东西。当我将堆栈小部件包装到一列中时,它给出了错误:底部被无限像素溢出 我尝试使用Container和SizedBox添加自定义高度。还尝试使用了Flutter 使用列内堆栈使底部溢出无限像素,flutter,dart,Flutter,Dart,我正在使用堆栈小部件在屏幕内显示动画。我只使用了70%的屏幕,其余的我都没有使用。我想在那里展示一些别的东西。当我将堆栈小部件包装到一列中时,它给出了错误:底部被无限像素溢出 我尝试使用Container和SizedBox添加自定义高度。还尝试使用了SingleChildScrollView。还是一样的错误 代码: @覆盖 小部件构建(构建上下文){ 返回脚手架( 背景颜色:白色, 正文:专栏( 儿童:[ 堆叠( 儿童:[ 大小盒子( 高度:MediaQuery.of(上下文).size.hei
SingleChildScrollView
。还是一样的错误
代码:
@覆盖
小部件构建(构建上下文){
返回脚手架(
背景颜色:白色,
正文:专栏(
儿童:[
堆叠(
儿童:[
大小盒子(
高度:MediaQuery.of(上下文).size.height*0.72,
儿童:FlareActor(
“assets/videos/stars.flr”,
对齐:对齐.center,
适合:BoxFit.cover,
动画:“闪烁”,
控制器:_控制器,
),
),
容器(
子:Transform.scale(
比例:0.6,
儿童:FlareActor(
“资产/视频/talking earth.flr”,
对齐:对齐.center,
适合:BoxFit.cover,
动画:“已激活”,
控制器:_控制器,
),
),
),
定位(
左:MediaQuery.of(context).size.width/3.8,
顶部:MediaQuery.of(context).size.width/10,
子:文本(
“已出版”,
样式:GoogleFonts.pts(
颜色:白色,
fontSize:ScreenUtil().setSp(50),
fontWeight:fontWeight.bold),
),
),
],
),
文本(“测试”),
],
),
);
}
}
您需要先用容器包装堆栈,设置预定义的高度。这是因为堆栈大小依赖于其父级
以下是有关堆栈的官方文档:无论您是在
列中使用堆栈
,还是在单机版中使用,如果内容超出边界,它总是会溢出。您需要确定Stack
是否是适合您的用例的正确小部件?作为一种解决方法,您可以使用溢出:overflow.visible
。首先尝试使用容器包装堆栈,设置预定义的height@JuanCurti谢谢,这很有效。请写下来作为回答,这样我就可以接受了,
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: whiteColor,
body: Column(
children: [
Stack(
children: <Widget>[
SizedBox(
height: MediaQuery.of(context).size.height * 0.72,
child: FlareActor(
'assets/videos/stars.flr',
alignment: Alignment.center,
fit: BoxFit.cover,
animation: 'Blink',
controller: _controller,
),
),
Container(
child: Transform.scale(
scale: 0.6,
child: FlareActor(
'assets/videos/talking-earth.flr',
alignment: Alignment.center,
fit: BoxFit.cover,
animation: 'activated',
controller: _controller,
),
),
),
Positioned(
left: MediaQuery.of(context).size.width / 3.8,
top: MediaQuery.of(context).size.width / 10,
child: Text(
"Published",
style: GoogleFonts.ptSansNarrow(
color: whiteColor,
fontSize: ScreenUtil().setSp(50),
fontWeight: FontWeight.bold),
),
),
],
),
Text("Test"),
],
),
);
}
}