У меня есть виджет, у которого есть два TextField
как потомки. Я хотел бы применить тот же стиль к этим TextField
. Я понимаю, что правильный способ сделать это - применить локализованную тему к моему дереву виджета. Следующей является моя попытка. Это фрагмент кода из моей функции build
корневого виджета. Разве нет более чистого способа сделать это?
final ThemeData _themeData = Theme.of(context);
return Theme( // HACK
data: _themeData.copyWith(
inputDecorationTheme: InputDecorationTheme(
border: OutlineInputBorder(),
),
textTheme: _themeData.textTheme.copyWith(
subhead: _themeData.textTheme.subhead.copyWith(
fontSize: 30.0,
),
),
),
child: _buildTheRestOfMyWidgetTree(context),
);
То, что меня раздражает, заключается в том, что для переопределения одного свойства (_themeData.textTheme.subhead.fontSize
) я должен явно и вручную создавать копии трех промежуточных структур данных (_themeData
, _themeData.textTheme
, затем _themeData.textTheme.subhead
).