import
'package:flutter/material.dart'
;
import
'package:kc0035a_flutter_customer_app/Screen1.dart'
;
import
'package:kc0035a_flutter_customer_app/data/SliderModel.dart'
;
class
HomeScreen extends StatefulWidget {
@override
_HomeScreenState createState() => _HomeScreenState();
}
class
_HomeScreenState extends State<HomeScreen> {
List<SliderModel> slides =
new
List<SliderModel>();
int
currentIndex = 0;
PageController _controller;
@override
void
initState() {
super.initState();
_controller = PageController(initialPage: 0);
slides = getSlides();
}
@override
void
dispose(){
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return
Scaffold(
appBar: AppBar(
title: Text(
"Geeks for Geeks"
),
),
body: Column(
children: [
Expanded(
child: PageView.builder(
scrollDirection: Axis.horizontal,
controller: _controller,
onPageChanged: (value){
setState(() {
currentIndex = value;
});
},
itemCount: slides.length,
itemBuilder: (context, index){
return
Slider(
image: slides[index].getImage(),
);
}
),
),
Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: List.generate(slides.length, (index) => buildDot(index, context),
),
),
),
Container(
height: 60,
margin: EdgeInsets.all(40),
width:
double
.infinity,
color: Colors.green,
child: FlatButton(
child: Text(
currentIndex == slides.length - 1 ?
"Continue"
:
"Next"
),
onPressed: (){
if
(currentIndex == slides.length - 1){
Navigator.pushReplacement(context, MaterialPageRoute(builder: (context)=> Screen1()),
);
}
_controller.nextPage(duration: Duration(milliseconds: 100), curve: Curves.bounceIn);
},
textColor: Colors.white,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(25),
),
),
),
],
),
backgroundColor: Colors.white,
);
}
Container buildDot(
int
index, BuildContext context){
return
Container(
height: 10,
width: currentIndex == index ? 25 : 10,
margin: EdgeInsets.only(right: 5),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: Colors.green,
),
);
}
}
class
Slider extends StatelessWidget {
String image;
Slider({
this
.image});
@override
Widget build(BuildContext context) {
return
Expanded(
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Image(image: AssetImage(image)),
SizedBox(height: 25),
],
),
),
);
}
}