错误:无法将参数类型“Null Function(int)”分配给参数类型“dynamic Function(int, CarouselPageChangedReason)”

时间:2021-03-28 06:52:14

标签: flutter dart slider carousel

我也使用轮播幻灯片插件创建轮播幻灯片图像,但是当我初始化“int”变量时 _current = 0;我创建了一个设置状态来将变量分配给它,它给了我一个错误。 "Null function(int)' 不能分配给参数类型 'dynamic Function(int, CarouselPageChangedReason)'"

class HomePage 扩展了 StatefulWidget { 静态字符串页面 = 'home_Page';

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int _current = 0;

  List imgList = [
    'assets/images/deal1.jpg',
    'assets/images/deal4.jpg',
    'assets/images/deal2.jpg',
    'assets/images/deal3.png',
  ];

  @override
  Widget build(BuildContext context) {
    SizeConfig().init(context);
    return Scaffold(
      appBar: buildAppBar,
      drawer: Drawer(
        child: DrawerPage(),
      ),
      body: Container(
        margin: EdgeInsets.only(left: 14),
        child: Container(
          height: getProportionateScreenHeight(820),
          child: ListView(
            children: [
              Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  welcomeHeader(),
                  SizedBox(height: getProportionateScreenHeight(10)),
                  SearchField(),
                  SizedBox(height: getProportionateScreenHeight(20)),
                  categorySectionTitle(),
                  SizedBox(height: getProportionateScreenWidth(5)),
                  categoryListTiles(),
                  SizedBox(height: getProportionateScreenHeight(20)),
                  SizedBox(height: getProportionateScreenHeight(10)),
                  popularFoodSectionTiles(),
                  Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: [
                      CarouselSlider(
                        options: CarouselOptions(
                          height: 100,
                          initialPage: 0,
                          onPageChanged: (index) {
                            setState(() {
                              _current = index;
                            });
                          },
                        ),enter code here
                        items: [],
                      ),
                    ],
                  ),
                  SizedBox(height: getProportionateScreenHeight(20)),
                  restaurantSplendorTiles(),
                  SizedBox(height: getProportionateScreenWidth(5)),
                  RestaurantCat(),
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}

这是错误的代码行:

onPageChanged: (index) {
                            setState(() {
                              _current = index;
                            });
                          }

,

请帮帮我... :(

2 个答案:

答案 0 :(得分:1)

看起来您需要在 onPageChanged 函数中接受另一个参数。这样的事情应该工作......

onPageChanged: (index, _) {
  setState(() {
    _current = index;
  });
}

答案 1 :(得分:1)

我找到了答案,而不是 ;

onPageChanged: (index) {
                            setState(() {
                              _current = index;
                            });
                          }

应该是;

onPageChanged: (index, reason) {
                            setState(() {
                              _current = index;
                            });
                          }