Created
January 24, 2025 15:10
-
-
Save hectorAguero/8640422f8e1e2846f0c6b8b526b3134d to your computer and use it in GitHub Desktop.
AnimatedSize with AnimatedSwitched in text
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/material.dart'; | |
/// Flutter code sample for [AnimatedSize]. | |
void main() => runApp(const AnimatedSizeExampleApp()); | |
class AnimatedSizeExampleApp extends StatelessWidget { | |
const AnimatedSizeExampleApp({super.key}); | |
static const Duration duration = Duration(seconds: 1); | |
static const Curve curve = Curves.easeIn; | |
@override | |
Widget build(BuildContext context) { | |
return MaterialApp( | |
home: Scaffold( | |
appBar: AppBar(title: const Text('AnimatedSize Sample')), | |
body: const Center( | |
child: AnimatedSizeExample( | |
duration: duration, | |
curve: curve, | |
), | |
), | |
), | |
); | |
} | |
} | |
class AnimatedSizeExample extends StatefulWidget { | |
const AnimatedSizeExample({ | |
required this.duration, | |
required this.curve, | |
super.key, | |
}); | |
final Duration duration; | |
final Curve curve; | |
@override | |
State<AnimatedSizeExample> createState() => _AnimatedSizeExampleState(); | |
} | |
class _AnimatedSizeExampleState extends State<AnimatedSizeExample> { | |
bool _isSelected = false; | |
@override | |
Widget build(BuildContext context) { | |
return GestureDetector( | |
onTap: () { | |
setState(() { | |
_isSelected = !_isSelected; | |
}); | |
}, | |
child: ColoredBox( | |
color: Colors.amberAccent, | |
child: AnimatedSize( | |
duration: widget.duration, | |
curve: widget.curve, | |
child: SizedBox( | |
width: 100, | |
child: AnimatedSwitcher( | |
duration: widget.duration, | |
child: Text( | |
key: ValueKey(_isSelected), | |
_isSelected | |
? 'Selected to much text jajajajaja' | |
: 'Unselected', | |
), | |
)), | |
), | |
), | |
); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment