You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter报错:预期0个位置参数却传入3个,求解决方案

Flutter错误求助:参数不匹配及组件语法问题

我是Flutter新手,调用第191行的_textformField()函数时,收到“too many positional arguments: 0 expected but 3 found”错误。尝试移除textformField Widget后,错误转移到SingleChildScrollView()处。

相关代码片段

HomePage中的_textformField方法

class HomePage extends StatelessWidget {
  Widget _textformField(){

    return Padding(
      padding: EdgeInsets.only(right: 10),
      child: TextFormField(
        decoration: InputDecoration(
          fillColor: Color(0xff3a3e3e),
          filled: true,
          hintText: "Search Food",
          hintStyle: TextStyle(color: Colors.white),
          prefixIcon: Icon(Icons.search,color: Colors.white,),
          border: OutlineInputBorder(
            borderRadius: BorderRadius.circular(10.0),
            borderSide: BorderSide.none,

          ),
        ),
      ),
    );
  }

调用代码片段

_textformField(),


SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: [

  _allCategories(
image: 'images/Ayam-Goreng.png',
title: 'Ayam Goreng',
),

_allCategories(
image: 'images/Ayam-Kari.png',
title: 'Ayam Kari',
),

_allCategories方法

Widget _allCategories({required String image, required String title}){
    return Container(
      height: 130,
      margin: EdgeInsets.symmetric(horizontal: 10),
      child: Column(
        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
        children: [
          Container(
            height: 70,
            width: 70,
            decoration: BoxDecoration(
              color: Colors.grey,
                image: DecorationImage(
                  fit: BoxFit.cover,
                  image: AssetImage(image),
                ),
              borderRadius: BorderRadius.circular(10.0)
            ),
          ),
          Text(title,style: TextStyle(fontSize: 18, color: Colors.white),)
        ],
      ),
    );
  }

_bottomCategories方法

Widget _bottomCategories({required String image, required String title, required double price}){
    return Container(
      decoration: BoxDecoration(
        color: Color(0xff3c3f40),
        borderRadius: BorderRadius.circular(20.0)
      ),
      child: Padding(
        padding: EdgeInsets.symmetric(horizontal: 15),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Container(
              child: Center(
                child: CircleAvatar(
                  backgroundImage: AssetImage(image),
                  radius: 60,
                  backgroundColor: Colors.transparent,
                )
              ),
            ),
            Container(
              height: 50,
              child: Column(
                mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      Text(title,
                          style: TextStyle(
                              fontSize: 15,
                              color: Colors.white,
                              fontWeight: FontWeight.bold
                          ),
                      ),

                      Text(
                        '\$ $price',
                        style: TextStyle(
                            fontSize: 15,
                            color: Colors.white,
                            fontWeight: FontWeight.bold
                        ),
                      ),
                    ],
                  ),
                  Row(
                    children: [
                      Icon(
                        Icons.star,
                        size: 14,
                        color: Colors.white,
                      ),
                      Icon(
                        Icons.star,
                        size: 14,
                        color: Colors.white,
                      ),
                      Icon(
                        Icons.star,
                        size: 14,
                        color: Colors.white,
                      ),
                      Icon(
                        Icons.star,
                        size: 14,
                        color: Colors.grey,
                      ),
                    ],
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }

问题解决

1. 参数不匹配错误

_textformField()定义时无参数,报错说明实际调用时可能误传了位置参数,或者调用上下文存在语法错误(比如括号、逗号不规范)导致编译器误判。检查调用代码,确保是_textformField(),无多余参数,且所在Widget列表语法正确。

2. SingleChildScrollView报错

你贴的SingleChildScrollView代码未闭合,缺少Row的children闭合方括号、Row和SingleChildScrollView的闭合括号,补全后代码如下:

SingleChildScrollView(
  scrollDirection: Axis.horizontal,
  child: Row(
    children: [
      _allCategories(
        image: 'images/Ayam-Goreng.png',
        title: 'Ayam Goreng',
      ),
      _allCategories(
        image: 'images/Ayam-Kari.png',
        title: 'Ayam Kari',
      ),
    ],
  ),
)

3. 通用检查

检查整个HomePage的build方法,确保所有Widget嵌套闭合,逗号使用正确,这类语法错误常导致编译器误报参数问题。

内容的提问来源于stack exchange,提问作者icestormpure

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:45:51