Как настроить 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),
)