xxxxxxxxxx
late PageController _pageController;
List<String> images = [
"https://images.wallpapersden.com/image/download/purple-sunrise-4k-vaporwave_bGplZmiUmZqaraWkpJRmbmdlrWZlbWU.jpg",
"https://wallpaperaccess.com/full/2637581.jpg",
"https://uhdwallpapers.org/uploads/converted/20/01/14/the-mandalorian-5k-1920x1080_477555-mm-90.jpg"
];
@override
void initState() {
super.initState();
_pageController = PageController(viewportFraction: 0.8);
}
@override
Widget build(BuildContext context) {
return PageView.builder(
itemCount: images.length,
pageSnapping: true,
controller: _pageController,
onPageChanged: (page) {
setState(() {
activePage = page;
});
},
itemBuilder: (context, pagePosition) {
return Container(
margin: EdgeInsets.all(10),
child: Image.network(images[pagePosition]),
);
});
}
xxxxxxxxxx
import 'package:flutter/material.dart';
class SlideInAnimation extends StatefulWidget {
final Widget child;
final Duration duration;
SlideInAnimation({required this.child, this.duration = const Duration(milliseconds: 500)});
@override
_SlideInAnimationState createState() => _SlideInAnimationState();
}
class _SlideInAnimationState extends State<SlideInAnimation> with SingleTickerProviderStateMixin {
late AnimationController _animationController;
late Animation<Offset> _animation;
@override
void initState() {
super.initState();
_animationController = AnimationController(vsync: this, duration: widget.duration);
_animation = Tween<Offset>(begin: Offset(1.0, 0.0), end: Offset.zero)
.animate(CurvedAnimation(parent: _animationController, curve: Curves.easeInOut));
_animationController.forward();
}
@override
void dispose() {
_animationController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return SlideTransition(
position: _animation,
child: widget.child,
);
}
}