Image 位置参数过多导致堆栈错误
我有一个将文本放在图像上的堆栈,但是当我这样做时,我会得到一个错误:位置参数太多:预期为0,但找到了3。它是一个计算器,用户的输出是claculator.view.toString()。它后面的图像位于一个名为assets的文件中,名为please.png。请随便问我任何问题注意错误在第19行。Image 位置参数过多导致堆栈错误,image,flutter,dart,text,stack,Image,Flutter,Dart,Text,Stack,我有一个将文本放在图像上的堆栈,但是当我这样做时,我会得到一个错误:位置参数太多:预期为0,但找到了3。它是一个计算器,用户的输出是claculator.view.toString()。它后面的图像位于一个名为assets的文件中,名为please.png。请随便问我任何问题注意错误在第19行。 import 'package:google_fonts/google_fonts.dart'; import 'package:neumorphism_web/calculator/calculato
import 'package:google_fonts/google_fonts.dart';
import 'package:neumorphism_web/calculator/calculator_logic.dart';
import 'package:neumorphism_web/calculator/neu_calculator_button.dart';
import 'package:neumorphism_web/calculator/neumorphic_theme.dart';
import 'package:provider/provider.dart';
import 'image_banner.dart';
class CalculatorView extends StatelessWidget {
@override
Widget build(BuildContext context) {
final calculator = Provider.of<Calculator>(context);
return Material(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 15.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Stack(
Spacer(),
ImageBanner("assets/please.png"),
Text(
calculator.value.toString(),
style: GoogleFonts.montserrat(
fontSize: 75,
fontWeight: FontWeight.w700,
color: Colors.white,
),
),
),
SizedBox(height: 50),
ButtonRow(children: [
NeuCalculatorButton(
text: 'AC',
onPressed: calculator.reset,
),
NeuCalculatorButton(
text: '+/-',
onPressed: () {},
),
NeuCalculatorButton(
text: '%',
onPressed: () {},
),
NeuCalculatorButton(
text: '÷',
textColor: kOrange,
textSize: 35,
onPressed: calculator.divide,
isChosen: calculator.currentVariable is CalculatorDivide,
),
]),
ButtonRow(
children: [
NeuCalculatorButton(
text: '7',
onPressed: () => calculator.setValue(7),
),
NeuCalculatorButton(
text: '8',
onPressed: () => calculator.setValue(8),
),
NeuCalculatorButton(
text: '9',
onPressed: () => calculator.setValue(9),
),
NeuCalculatorButton(
text: 'x',
textColor: kOrange,
onPressed: calculator.multiply,
isChosen: calculator.currentVariable is CalculatorMultiply,
),
],
),
ButtonRow(
children: [
NeuCalculatorButton(
text: '4',
onPressed: () => calculator.setValue(4),
),
NeuCalculatorButton(
text: '5',
onPressed: () => calculator.setValue(5),
),
NeuCalculatorButton(
text: '6',
onPressed: () => calculator.setValue(6),
),
NeuCalculatorButton(
text: '-',
textColor: kOrange,
textSize: 35,
onPressed: calculator.deduct,
isChosen: calculator.currentVariable is CalculatorDeduct,
),
],
),
ButtonRow(
children: [
NeuCalculatorButton(
text: '1',
onPressed: () => calculator.setValue(1),
),
NeuCalculatorButton(
text: '2',
onPressed: () => calculator.setValue(2),
),
NeuCalculatorButton(
text: '3',
onPressed: () => calculator.setValue(3),
),
NeuCalculatorButton(
text: '+',
textColor: kOrange,
textSize: 35,
onPressed: calculator.add,
isChosen: calculator.currentVariable is CalculatorAdd,
),
],
),
ButtonRow(
children: [
NeuCalculatorButton(
text: '0',
onPressed: () => calculator.setValue(0),
isPill: true,
),
NeuCalculatorButton(
text: '.',
onPressed: () {},
),
NeuCalculatorButton(
text: '=',
textColor: kOrange,
textSize: 35,
onPressed: calculator.showResult,
),
],
),
SizedBox(height: 15)
],
),
),
);
}
}
class ButtonRow extends StatelessWidget {
const ButtonRow({
Key key,
@required this.children,
}) : super(key: key);
final List<NeuCalculatorButton> children;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: children,
),
);
}
}
import'包:google_字体/google_字体.dart';
导入“包:neumorphism_web/calculator/calculator_logic.dart”;
导入“包:neumorphism_web/calculator/neu_calculator_button.dart”;
导入“包:neumorphism_web/calculator/neumorphism_theme.dart”;
导入“包:provider/provider.dart”;
导入“image_banner.dart”;
类CalculatorView扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
最终计算器=提供者(上下文);
退货(
孩子:填充(
填充:常量边集。对称(水平:15.0),
子:列(
crossAxisAlignment:crossAxisAlignment.end,
儿童:[
堆叠(
垫片(),
ImageBanner(“assets/please.png”),
正文(
calculator.value.toString(),
风格:GoogleFonts.montserrat(
尺寸:75,
fontWeight:fontWeight.w700,
颜色:颜色,白色,
),
),
),
尺寸箱(高度:50),
按钮箭头(儿童:[
纽扣(
文本:“AC”,
onPressed:calculator.reset,
),
纽扣(
文本:“+/-”,
按下:(){},
),
纽扣(
文本:“”,
按下:(){},
),
纽扣(
正文:‘÷’,
textColor:kOrange,
文本大小:35,
onPressed:calculator.divide,
isChosen:calculator.currentVariable是calculator提供的,
),
]),
按钮箭头(
儿童:[
纽扣(
正文:“7”,
按下:()=>calculator.setValue(7),
),
纽扣(
正文:“8”,
按下:()=>calculator.setValue(8),
),
纽扣(
正文:“9”,
按下:()=>calculator.setValue(9),
),
纽扣(
文本:“x”,
textColor:kOrange,
onPressed:calculator.multiply,
isChosen:calculator.currentVariable是calculator乘法,
),
],
),
按钮箭头(
儿童:[
纽扣(
正文:“4”,
按下:()=>calculator.setValue(4),
),
纽扣(
正文:“5”,
按下:()=>calculator.setValue(5),
),
纽扣(
正文:“6”,
按下:()=>calculator.setValue(6),
),
纽扣(
正文:'-',
textColor:kOrange,
文本大小:35,
按下:计算器。扣除,
isChosen:calculator.currentVariable是calculator Dector,
),
],
),
按钮箭头(
儿童:[
纽扣(
正文:“1”,
按下:()=>calculator.setValue(1),
),
纽扣(
正文:“2”,
按下:()=>calculator.setValue(2),
),
纽扣(
正文:“3”,
按下:()=>calculator.setValue(3),
),
纽扣(
文本:“+”,
textColor:kOrange,
文本大小:35,
onPressed:calculator.add,
isChosen:calculator.currentVariable是calculator添加,
),
],
),
按钮箭头(
儿童:[
纽扣(
文本:“0”,
按下:()=>calculator.setValue(0),
伊斯皮尔:是的,
),
纽扣(
正文:‘.’,
按下:(){},
),
纽扣(
文本:“=”,
textColor:kOrange,
文本大小:35,
onPressed:calculator.showResult,
),
],
),
尺寸箱(高度:15)
],
),
),
);
}
}
类ButtonRow扩展了无状态小部件{
常量按钮箭头({
关键点,
@需要这个,孩子们,
}):super(key:key);
最后儿童名单;
@凌驾
小部件构建(构建上下文){
返回填充(
填充:常数边集全部(8.0),
孩子:排(
mainAxisAlignment:mainAxisAlignment.spaceBetween,
儿童:儿童,,
),
);
}
}
堆栈
不接受任何位置参数。它接受一个命名的子变量
参数,该参数接受一个列表:
堆栈(子项:[
垫片(),
ImageBanner(“assets/please.png”),
...
]),
您直接将小部件作为参数传递给堆栈
,这意味着您试图在堆栈不接受任何po的情况下为其提供位置参数
Stack(
children: <Widget>[
MyWidget(),
Positioned(
bottom: 20,
left: 20,
child: MyWidget2(color: Colors.blue),
),
Positioned(
top: 50,
right: 50,
child: MyWidget3(color: Colors.red)
)
]