Estou com dificuldade para encontrar uma solução para gerenciar a cor das bordas do meu contêiner sem codificá-las sempre.
Quero definir minhas Cores personalizadas para as Bordas no ThemeData para o modo diurno e o modo noturno, mas não consigo encontrar a propriedade certa. No momento, a cor escolhida pelo Dart para as bordas é escura.
Só para ficar claro... gostaria de escrever algo assim:
border: Border.all(
width: width * 0.002,
),
sem especificar a cor.
Se você der uma olhada no
Border.all
construtor no código-fonte , ele se parece com isto:Como você pode ver, o
color
parâmetro padrão éColor(0xFF000000)
, que é preto sólido. Isso significa que ele não herda ou faz referência a nenhuma cor doThemeData
. Infelizmente, esse parâmetro não está vinculado a propriedades de tema que podemos personalizar facilmente.Além disso, estender a
Border
classe para criar uma borda personalizada que use algo comoTheme.of(context).colorScheme.surface
para ocolor
não é uma opção, porque aBorder
classe não tem acesso aocontext
.No entanto, se você estiver procurando por uma maneira mais flexível de aplicar bordas consistentemente em todo o seu aplicativo, você pode criar uma função global. Essa função pode extrair valores de cor do tema e aplicá-los às suas bordas, assim:
Você pode então usar esta função em seus widgets assim:
Primeiro você deve criar um arquivo dart:
você pode definir cada cor que deseja no modo escuro ou claro
e você pode usar isso
quando você muda o tema (claro para escuro ou escuro para claro) as cores podem ser alteradas automaticamente.