我也使用轮播幻灯片插件创建轮播幻灯片图像,但是当我初始化“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;
});
}
,
请帮帮我... :(
答案 0 :(得分:1)
看起来您需要在 onPageChanged
函数中接受另一个参数。这样的事情应该工作......
onPageChanged: (index, _) {
setState(() {
_current = index;
});
}
答案 1 :(得分:1)
我找到了答案,而不是 ;
onPageChanged: (index) {
setState(() {
_current = index;
});
}
应该是;
onPageChanged: (index, reason) {
setState(() {
_current = index;
});
}