Liquid Swipe:
Video:
Code:
import 'dart:math'; import 'package:flutter/material.dart'; import 'package:liquid_swipe/liquid_swipe.dart'; void main() { runApp( MyApp(), ); } class MyApp extends StatefulWidget { static final style = TextStyle( fontSize: 30, fontFamily: "Billy", fontWeight: FontWeight.w600, ); @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { int page = 0; UpdateType updateType; final pages = [ Container( color: Colors.yellow, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ Image.asset( 'images/logo.jpg', fit: BoxFit.cover, ), Padding( padding: EdgeInsets.all(20.0), ), Column( children: <Widget>[ Text( "Hi", style: MyApp.style, ), Text( "It's Me", style: MyApp.style, ), Text( "maherban husen tech", style: MyApp.style, ), ], ), ], ), ), Container( color: Colors.pink, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ Image.asset( 'images/1a.jpg', fit: BoxFit.cover, ), Padding( padding: EdgeInsets.all(20.0), ), Column( children: <Widget>[ Text( "Settings UI", style: MyApp.style, ), ], ), ], ), ), Container( color: Colors.cyan, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ Image.asset( 'images/2a.jpg', fit: BoxFit.cover, ), Padding( padding: EdgeInsets.all(20.0), ), Column( children: <Widget>[ Text( "Profile UI", style: MyApp.style, ), ], ), ], ), ), Container( color: Colors.orange, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ Image.asset( 'images/3a.jpg', fit: BoxFit.cover, ), Padding( padding: EdgeInsets.all(20.0), ), Column( children: <Widget>[ Text( "Music UI", style: MyApp.style, ), ], ), ], ), ), Container( color: Colors.black12, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: <Widget>[ Image.asset( 'images/4a.jpg', fit: BoxFit.cover, ), Padding( padding: EdgeInsets.all(20.0), ), Column( children: <Widget>[ Text( "WhatsApp UI", style: MyApp.style, ), ], ), ], ), ), ]; Widget _buildDot(int index) { double selectedness = Curves.easeOut.transform( max( 0.0, 1.0 - ((page ?? 0) - index).abs(), ), ); double zoom = 1.0 + (2.0 - 1.0) * selectedness; return new Container( width: 25.0, child: new Center( child: new Material( color: Colors.white, type: MaterialType.circle, child: new Container( width: 8.0 * zoom, height: 8.0 * zoom, ), ), ), ); } @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: Scaffold( body: Stack( children: <Widget>[ LiquidSwipe( pages: pages, fullTransitionValue: 200, enableSlideIcon: true, enableLoop: true, positionSlideIcon: 0.5, onPageChangeCallback: pageChangeCallback, currentUpdateTypeCallback: updateTypeCallback, waveType: WaveType.liquidReveal, ), Padding( padding: EdgeInsets.all(20), child: Column( children: <Widget>[ Expanded(child: SizedBox()), Row( mainAxisAlignment: MainAxisAlignment.center, children: List<Widget>.generate(5, _buildDot), ), ], ), ), ], ), ), ); } pageChangeCallback(int lpage) { print(lpage); setState(() { page = lpage; }); } updateTypeCallback(UpdateType updateType) { print(updateType); } }
0 Comments