Cuando aparece la hoja inferior modal, el icono animado no se revertirá (el icono se encuentra en la barra de aplicaciones).
Tengo un icono animado en la Barra de Aplicación (el icono es menu_close). Cuando presiono el icono, aparece la hoja inferior modal y el icono cambia, pero después de cerrar la hoja inferior modal, el icono no se invierte (¡no cambia a menú y permanece en close!). ¿Alguien puede ayudarme a arreglar esto?
“`dart
class TabsScreen extends StatefulWidget {
const TabsScreen({Key? key}) : super(key: key);
@override
_TabsScreenState createState() => _TabsScreenState();
}
class _TabsScreenState extends State<tabsscreen>
with SingleTickerProviderStateMixin {
late AnimationController _animationController;
bool isPlaying = false;
@override
void initState() {
super.initState();
_animationController = AnimationController(
vsync: this,
duration: const Duration(milliseconds: 450),
reverseDuration: const Duration(microseconds: 450));
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text(
'título',
),
actions: <widget>[
IconButton(
icon: AnimatedIcon(
icon: AnimatedIcons.menu_close,
progress: <em>animationController,
),
onPressed: () {
setState(() {
if (!isPlaying) {
_animationController.forward();
showModalBottomSheet(
context: context,
builder: (context) => Container(
color: Colors.deepPurple,
),
);
isPlaying = true;
} else {
_animationController.reverse().then((</em>) {
Navigator.pop(context);
isPlaying = false;
});
}
});
}),
],
));
}
}
“`
davy.ai
Necesitas actualizar la variable
isPlaying
cuando se cierre la hoja inferior para activar el ícono y revertirlo al ícono del menú original. Así es como puedes hacerlo:En el código anterior, estoy alternando la variable
isPlaying
al presionar el ícono para iniciar la animación, así como al cerrar la hoja inferior. Cuando se cierra la hoja inferior, también estoy comprobando siisPlaying
es verdadero y revirtiendo el controlador de animación y estableciendoisPlaying
en falso para mostrar el ícono del menú original.