Como eu faço para usar o tem default quando volto para home? Estou tentando com o cubit, mas entra em loop infinito e fica piscando. Se esse fosse um requisito, eu deveria fazer mudar o tema da página somente e não de toda aplicação?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Como eu faço para usar o tem default quando volto para home? Estou tentando com o cubit, mas entra em loop infinito e fica piscando. Se esse fosse um requisito, eu deveria fazer mudar o tema da página somente e não de toda aplicação?
Olá, Gabriel.
Tudo bem?
O loop infinito que você mencionou pode estar acontecendo porque a função changeTheme() está sendo chamada repetidamente, causando a re-renderização contínua da tela.
Para resolver isso, uma abordagem seria garantir que a mudança de tema ocorra apenas uma vez quando você volta para a Home. Você pode fazer isso verificando se o tema atual já é o tema padrão antes de tentar alterá-lo novamente.
Aqui está um exemplo de como você pode implementar isso:
theme_cubit.dart, adicione um método para resetar o tema para o padrão:class ThemeCubit extends Cubit<ThemeData> {
ThemeCubit() : super(MyThemes.getTheme("default"));
void changeTheme(String genre) {
emit(MyThemes.getTheme(genre));
}
void resetTheme() {
emit(MyThemes.getTheme("default"));
}
}
home_screen.dart (ou onde você gerencia a tela inicial), chame o método resetTheme() ao voltar para a Home:@override
Widget build(BuildContext context) {
final themeCubit = context.read<ThemeCubit>();
// Verifique se o tema atual não é o padrão antes de resetar
if (themeCubit.state != MyThemes.getTheme("default")) {
themeCubit.resetTheme();
}
return Scaffold(
// Código da Home
);
}
Essa abordagem evita o loop infinito, pois a mudança de tema só ocorre se o tema atual não for o padrão. Dessa forma, você garante que o tema da Home seja sempre o padrão sem causar re-renderizações desnecessárias.
Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.