我正在使用以下代码使用 PageView 来轮播
PageView.builder(
onPageChanged: (value) {
setState(() {
currentpage = value;
});
},
controller: controller,
itemCount: data.length,
itemBuilder: (context, index) {
return GestureDetector(
onTap: () {
debugPrint('Nilesh Rathod $index');
if (index == 0) {
Navigator.push(
context,
PageTransition(
type: PageTransitionType
.rightToLeft,
child: DetailPage()))
.then((value) {
debugPrint('nilu pilu');
controller.jumpToPage(0);
});
}
},
child: AnimatedBuilder(
animation: controller,
builder: (context, child) {
double value = 1.0;
if (controller.position.haveDimensions) {
value = controller.page - index;
value = (1 - (value.abs() * .5))
.clamp(0.0, 1.0);
}
return Align(
alignment: Alignment.topCenter,
child: SizedBox(
height:
Curves.easeOut.transform(value) *
300,
width:
Curves.easeOut.transform(value) *
250,
child: child,
),
);
},
child: Stack(children: <Widget>[
index == 0
? Container(
height: 300,
width: 220,
child: IconButton(
onPressed: () {
Utils.changeScreen(
context, CreateTripApp());
},
icon: Image.asset(
'assets/images/flight.png',
height: 120,
fit: BoxFit.cover,
width: 100,
),
),
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(
'assets/images/home.png'),
fit: BoxFit.cover,
),
borderRadius: BorderRadius.all(
Radius.circular(20.0),
),
))
: Container(
height: 300,
width: 220,
decoration: BoxDecoration(
color: index % 2 == 0
? Colors.red
: Colors.green,
borderRadius:
BorderRadius.all(
Radius.circular(
20.0))),
),
Positioned(
bottom: 30,
right: 10,
left: 10,
child: index == 0
? Align(
alignment:
Alignment.bottomCenter,
child: Text(
Constants.createYourTrip,
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 16.0,
fontFamily:
Fonts.standardBold,
),
))
: Align(
alignment:
Alignment.bottomCenter,
child: Text(
'Hello There',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontSize: 16.0,
fontFamily:
Fonts.standardBold,
),
)))
]),
),
);
})
并且它的工作正常,例外
但是当导航到另一个页面时,我失去了轮播效果,请检查下面的截图是否相同
如果需要更多信息,请告诉我。提前致谢。您的努力将不胜感激。