1
resposta

Container não está com a primaryColor definida no tema do App.

Estou definindo o tema da aplicação dessa forma:

theme: ThemeData(
        colorScheme: ColorScheme.fromSwatch(
            primarySwatch: generateMaterialColor(Colors.green[900]))
            .copyWith(
          secondary: Colors.blueAccent[700],
        ),
        buttonTheme: ButtonThemeData(
            buttonColor: Colors.blueAccent[700],
            textTheme: ButtonTextTheme.primary),
      ),

Essa função generateMaterialColor retorna um MaterialColor com a tonalidade do verde escolhido.

A AppBar está com a cor certa, mas quando vai pro DashBoard, o Container não está pegando o verde da primaryColor. Está ficando azul.

Material(
              color: Theme.of(context).primaryColor,
              child: InkWell(
                onTap: () => Navigator.of(context).push(
                    MaterialPageRoute(builder: (context) => ListaContatos())),
                child: Container(
                  padding: EdgeInsets.all(8.0),
                  height: 100,
                  width: 150,

Como se estivesse acontecendo o que o instrutor falou no curso: o context ainda estivesse sem a configuração do tema.

Mas o código do dashBoard está em um arquivo separado do runApp.

Alguém sabe me dizer o que pode estar acontecendo??

código completo: https://github.com/marcoaafonso/cursos-alura/tree/master/flutter/bytebank

1 resposta

Olá, Marco!

Aconteceu o mesmo comigo, estou utilizando a versão 2.8.0-stable. Resolvi envolvendo o ThemeData em um MaterialApp alinhado com o colorScheme definindo o primary da forma abaixo.

return MaterialApp(
      theme: ThemeData(
          colorScheme: ColorScheme.fromSwatch().copyWith(
            primary: Colors.green.shade900,
            secondary: Colors.green[700],
          ),
          elevatedButtonTheme: ElevatedButtonThemeData(
              style: ButtonStyle(
            backgroundColor:
                MaterialStateProperty.all<Color>(Colors.greenAccent.shade700),
          )
          )
      ),

Na parte do Dashboard tente definir a color da forma abaixo.

color: Theme.of(context).colorScheme.primary,