1
resposta

[Dúvida] Como definir o primarySwatch?

Estou tentando definir um primarySwatch para o meu projeto flutter mas nenhuma cor q eu coloco funciona. Repare que eu utilizei 'pink', e o tema da cor continua branco

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Simple Journal',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
          primarySwatch: Colors.pink
      ),
      darkTheme: ThemeData.dark(),
      themeMode: ThemeMode.light,
      initialRoute: "home",
      routes: {
        "home": (context) => const HomeScreen(),
      },
    );
  }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Diogo, tudo bem?

Uma possível razão para isso é que o primarySwatch precisa ser uma instância de MaterialColor, que é uma paleta de cores, e não apenas uma cor única. O Flutter oferece algumas cores pré-definidas que são MaterialColor, como Colors.pink, mas se você tentar usar uma cor que não é uma MaterialColor, isso pode não funcionar como esperado.

No seu caso, você usou Colors.pink, que é uma MaterialColor válida. No entanto, o problema pode estar em como essa cor está sendo utilizada nos widgets. Por exemplo, se um widget específico não está usando Theme.of(context).primaryColor ou uma propriedade derivada do primarySwatch, a cor definida não aparecerá.

Para garantir que a cor do tema está sendo aplicada, você pode tentar definir explicitamente a cor em um widget para ver se o problema está no tema ou no uso do tema nos widgets. Por exemplo, você pode definir a cor de um AppBar assim:

appBar: AppBar(
  title: Text('Simple Journal'),
  backgroundColor: Theme.of(context).primaryColor,
),

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!