Image Carousel with Flutter framework ANDROID STUDIO
pubspec.yaml
name: image_carousel_app | |
description: A new Flutter project. | |
dependencies: | |
flutter: | |
sdk: flutter | |
carousel_pro: ^0.0.1 | |
# The following adds the Cupertino Icons font to your application. | |
# Use with the CupertinoIcons class for iOS style icons. | |
cupertino_icons: ^0.1.2 | |
dev_dependencies: | |
flutter_test: | |
sdk: flutter | |
# For information on the generic Dart part of this file, see the | |
# following page: https://www.dartlang.org/tools/pub/pubspec | |
# The following section is specific to Flutter. | |
flutter: | |
# The following line ensures that the Material Icons font is | |
# included with your application, so that you can use the icons in | |
# the material Icons class. | |
uses-material-design: true | |
# To add assets to your application, add an assets section, like this: | |
# assets: | |
# - images/a_dot_burr.jpeg | |
# - images/a_dot_ham.jpeg | |
assets: | |
- assets/images/1.jpg | |
- assets/images/2.jpg | |
- assets/images/3.jpg | |
- assets/images/4.jpg | |
# An image asset can refer to one or more resolution-specific "variants", see | |
# https://flutter.io/assets-and-images/#resolution-aware. | |
# For details regarding adding assets from package dependencies, see | |
# https://flutter.io/assets-and-images/#from-packages | |
# To add custom fonts to your application, add a fonts section here, | |
# in this "flutter" section. Each entry in this list should have a | |
# "family" key with the font family name, and a "fonts" key with a | |
# list giving the asset and other descriptors for the font. For | |
# example: | |
# fonts: | |
# - family: Schyler | |
# fonts: | |
# - asset: fonts/Schyler-Regular.ttf | |
# - asset: fonts/Schyler-Italic.ttf | |
# style: italic | |
# - family: Trajan Pro | |
# fonts: | |
# - asset: fonts/TrajanPro.ttf | |
# - asset: fonts/TrajanPro_Bold.ttf | |
# weight: 700 | |
# | |
# For details regarding fonts from package dependencies, | |
# see https://flutter.io/custom-fonts/#from-packages | |
fonts: | |
- family: fira | |
fonts: | |
- asset: assets/fonts/FiraSans-Regular.ttf |
HomeScreen.dart
import 'package:flutter/material.dart'; import 'package:carousel_pro/carousel_pro.dart'; class HomeScreen extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Welcome to Flutter', home: Scaffold( appBar: AppBar( title: Text('Welcome to Flutter'), ), body: Center( child: ImageCarousel(), ), ), ); } } class ImageCarousel extends StatefulWidget { _ImageCarouselState createState() => new _ImageCarouselState(); } class _ImageCarouselState extends State<ImageCarousel> with SingleTickerProviderStateMixin { Animation<double> animation; AnimationController controller; initState() { super.initState(); controller = new AnimationController( duration: const Duration(milliseconds: 2000), vsync: this); animation = new Tween(begin: 0.0, end: 18.0).animate(controller) ..addListener(() { setState(() { // the state that has changed here is the animation object’s value }); }); controller.forward(); } @override Widget build(BuildContext context) { double screenHeight = MediaQuery.of(context).size.height; Widget carousel = new Carousel( boxFit: BoxFit.cover, images: [ new AssetImage('images/matka.jpg'), new AssetImage('images/matka.jpg'), ], animationCurve: Curves.fastOutSlowIn, animationDuration: Duration(seconds: 1), ); Widget banner = new Padding( padding: const EdgeInsets.only(top: 5.0, left: 5.0), child: new Container( decoration: BoxDecoration( borderRadius: BorderRadius.only( topLeft: Radius.circular(5.0), bottomRight: Radius.circular(5.0)), color: Colors.amber.withOpacity(0.5), ), padding: const EdgeInsets.all(5.0), child: new Text( 'Banner on top of carousel', style: TextStyle( fontFamily: 'fira', fontSize: animation.value,//18.0, color: Colors.white, ), ), ), // ), // ), ); return new Scaffold( backgroundColor: Colors.white, body: new Center( child: new Container( padding: const EdgeInsets.all(5.0), height: screenHeight / 4, child: new ClipRRect( borderRadius: BorderRadius.circular(5.0), child: new Stack( children: [ carousel, banner, ], ), ), ), ), ); } dispose() { controller.dispose(); super.dispose(); } }
Post a Comment
0Comments