Как настроить TextFormField для использования основного цвета (в фокусе) во Flutter

Мне нужно изменить цвет метки и границы по умолчанию, чтобы использовать основной цвет в фокусе, и я уже пробовал InputDecorationTheme, но он не работает с меткой. Я понимаю, что TextField использует цвет акцента.

Экран; и тема:

final ThemeData darkTheme = ThemeData(
    primaryColor: Colors.blueAccent[400],
    accentColor: Colors.pinkAccent[400],
    brightness: Brightness.dark,
    backgroundColor: Colors.grey[900],
    inputDecorationTheme: InputDecorationTheme(
        fillColor: Colors.white.withOpacity(0.1),
        filled: true,
    ),
);

Спасибо.

3 ответа

Попробуйте установить стиль в своем TextFormField, например:

style: TextStyle(
   color: Theme.of(context).primaryColor
),

utils.dart

class AvailableFonts {
  static const primaryFont = "Quicksand";
  static const primaryFontSize = 14.0;
}

theme.dart

поместите это в lib папка как main

ThemeData buildThemeData() {
  final baseTheme = ThemeData(fontFamily: AvailableFonts.primaryFont);

 return baseTheme.copyWith(
   primaryColor: primaryColor,
   primaryColorDark: primaryDark,
   primaryColorLight: primaryLight,
   accentColor: secondaryColor,
);}

И где вы определяете свои цвета

colours.dart

const primaryColor = Colors.red;
const primaryLight = const Color(0xFFB71C1C);
const primaryDark = const Color(0xFFFF9F59);
const secondaryColor = Colors.white;

После этого вы можете просто использовать в качестве примера ниже:

color: primaryColor,

Это правильный способ назвать цвет:

      focusedBorder: UnderlineInputBorder(
                      borderRadius: BorderRadius.circular(20),
                      borderSide: BorderSide(
                          color: ThemeData()
                              .inputDecorationTheme
                              .focusedBorder?.borderSide
                              .color ??
                              Colors.pink),
                    )
Другие вопросы по тегам