Image 位置参数过多导致堆栈错误

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

我有一个将文本放在图像上的堆栈,但是当我这样做时,我会得到一个错误:位置参数太多:预期为0,但找到了3。它是一个计算器,用户的输出是claculator.view.toString()。它后面的图像位于一个名为assets的文件中,名为please.png。请随便问我任何问题注意错误在第19行。

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)
    )
]