如何在 Flutter 中的 Carousel Slider 结束时触发功能?
How to trigger function on end of Carousel Slider in Flutter?
我在我的应用程序中使用 carousel_slider 包向我的用户显示 post。
我想在用户到达轮播中的最后一个 post 时加载更多 post。
我在哪里可以触发将更多数据添加到项目列表的功能,以防万一
homeData
我的代码是这样的:
@override
Widget build(BuildContext context) {
return RefreshIndicator(
onRefresh: getMoreData, //fetches new post on refresh
child: CarouselSlider(
options: CarouselOptions(
height: 650,
enableInfiniteScroll: false,
aspectRatio: 2.0,
enlargeCenterPage: true,
scrollDirection: Axis.vertical,
),
items: homeData, //list of widgets that are displayed in the carousel
),
);
}
你可以给onPageChanged
一个回调,只要post被滑动就会被调用。
以下是您的操作方法:
List itemList = [1,2,3,4,5];
CarouselSlider(
options: CarouselOptions(
height: 400.0,
onPageChanged: (index, reason) {
if(index == itemList.length - 1) {
//do whatever you want to do on your last page change
}
},
),
items: itemList.map((i) {
return Builder(
builder: (BuildContext context) {
return Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.symmetric(horizontal: 5.0),
decoration: BoxDecoration(
color: Colors.amber
),
child: Text('text $i', style: TextStyle(fontSize: 16.0),)
);
},
);
}).toList(),
)
我在我的应用程序中使用 carousel_slider 包向我的用户显示 post。 我想在用户到达轮播中的最后一个 post 时加载更多 post。 我在哪里可以触发将更多数据添加到项目列表的功能,以防万一
homeData
我的代码是这样的:
@override
Widget build(BuildContext context) {
return RefreshIndicator(
onRefresh: getMoreData, //fetches new post on refresh
child: CarouselSlider(
options: CarouselOptions(
height: 650,
enableInfiniteScroll: false,
aspectRatio: 2.0,
enlargeCenterPage: true,
scrollDirection: Axis.vertical,
),
items: homeData, //list of widgets that are displayed in the carousel
),
);
}
你可以给onPageChanged
一个回调,只要post被滑动就会被调用。
以下是您的操作方法:
List itemList = [1,2,3,4,5];
CarouselSlider(
options: CarouselOptions(
height: 400.0,
onPageChanged: (index, reason) {
if(index == itemList.length - 1) {
//do whatever you want to do on your last page change
}
},
),
items: itemList.map((i) {
return Builder(
builder: (BuildContext context) {
return Container(
width: MediaQuery.of(context).size.width,
margin: EdgeInsets.symmetric(horizontal: 5.0),
decoration: BoxDecoration(
color: Colors.amber
),
child: Text('text $i', style: TextStyle(fontSize: 16.0),)
);
},
);
}).toList(),
)