#dart #flutter
#dart #flutter
Вопрос:
Я знаю, как изменить цвет текста внутри отдельного TextFormField
использования TextStyle
, но я не могу понять, как применить его во всем приложении, используя тему.
Комментарии:
1. Привет, вы не приняли мой ответ, дайте мне знать, что в нем было не так, чтобы я мог соответствующим образом его обновить.
2. @CopsOnRoad Извините, я вернул это обратно.
3. Не беспокойтесь, спасибо 🙂
Ответ №1:
Вам нужно обернуть ваш корневой виджет в Theme
и применить data
следующим образом. Оба TextField
и TextFormField
будут иметь одинаковый цвет, общую тему.
Theme(
data: Theme.of(context).copyWith(
textTheme: Theme.of(context).textTheme.apply(bodyColor: Colors.green),
),
child: Column(
children: <Widget>[
TextFormField(...),
TextField(...),
],
),
);
Ответ №2:
Если вы не хотите оборачивать каждую форму / текстовое поле Theme
виджетом, вы можете установить subhead
свойство textTheme
в вашем оригинале ThemeData
как таковое:
ThemeData(
textTheme: TextTheme(
subhead: TextStyle(color: Colors.green),
),
Хотя, согласно документам, подзаголовок используется для основного текста в списках, поэтому я полагаю, что это может иметь некоторые нежелательные эффекты, если вы используете списки в другом месте