Animation crossFade
import "dart:async";
import "package:flutter/material.dart";
void main() {
runApp(AnimDemo(),);
}
class AnimDemo extends StatelessWidget {
AnimDemo({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: "Animation CrossFade in Flutter",
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: CrossDemo(),
);
}
}
class CrossDemo extends StatefulWidget {
CrossDemo({super.key});
@override
State<CrossDemo> createState() {
return PracticeCross1();
}
}
class PracticeCross1 extends State<CrossDemo> {
bool isFirst = true;
@override
void initState() {
super.initState();
//
Timer(Duration(seconds: 1,), () {
reload();
},);
}
//
void reload() {
setState(() {
if(isFirst) {
isFirst = false;
} else {
isFirst = true;
}
},);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Animated CrossFade"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
AnimatedCrossFade(
duration: Duration(seconds: 3,),
firstChild: Container(
width: 300.0,
height: 300.0,
color: Colors.blueGrey,
),
secondChild: Image.asset("assets/images/oliver_sea.jpg", width: 300.0, height: 300.0,),
sizeCurve: Curves.fastOutSlowIn,
firstCurve: Curves.easeInOut,
secondCurve: Curves.bounceInOut,
// crossFadeState: CrossFadeState.showFirst,
crossFadeState: isFirst ? CrossFadeState.showFirst : CrossFadeState.showSecond,
),
SizedBox(height: 30.0,),
ElevatedButton(
onPressed: () {
setState(() {
// isFirst ? CrossFadeState.showSecond : CrossFadeState.showFirst;
// isFirst = false;
// isFirst ? CrossFadeState.showFirst : CrossFadeState.showSecond;
// if(isFirst) {
// CrossFadeState.showSecond;
// isFirst = false;
// } else {
// CrossFadeState.showFirst;
// isFirst = true;
// }
reload();
},);
},
child: Text("Show Animation"),
),
],
),
),
);
}
}
Comments
Post a Comment