Как установить несколько цветов в флаттере данных темы?

Вот мой код:

        static final darkTheme = ThemeData(
      textTheme: GoogleFonts.rubikTextTheme()
          .apply(bodyColor: Color(0xFFf2f2f2), displayColor: Color(0xFFf2f2f2))
                .copyWith(bodyText1: TextStyle(color: Colors.greenAccent)),
      scaffoldBackgroundColor: Color(0xFF1f1f1f),
      primaryColor: Color(0xFF474747),
      colorScheme: ColorScheme.dark(
          primaryContainer: Color(0xFF282828),
          secondaryContainer: Color(0xFF3D3D3D)),
      iconTheme: IconThemeData(color: Color(0xFFf2f2f2)),
      primaryIconTheme: IconThemeData(color: Color(0xFFf2f2f2)),
      hintColor: Color(0xFFf2f2f2),
      backgroundColor: Color(0xFFd9d9d9),
      dividerColor: Color(0xFFf2f2f2));

Я хочу установить несколько цветов в textTheme, но как мне узнать, какое свойство TextStyle мне следует использовать? в этом случае у меня есть текст с надписью «открыть», и я хочу, чтобы он был зеленым с акцентом в темном режиме и зеленым в светлом режиме, и здесь я использую bodyText1, но зеленый цвет применяется к другому тексту, а не к тексту «Открыть».

я должен попробовать каждое свойство от displayLarge до надчеркивания, чтобы найти свойство, окрашенное в текст. И я не уверен, правильно ли я использую .copyWith или нет. даже если мне удастся найти его с помощью этого метода, я думаю, что это неправильно. я использую .apply для окрашивания большей части текста в белый цвет

2 ответа

Вместо использования текстового виджета используйте виджет RichText. Это может сделать вашу жизнь действительно легкой. Просто найдите RichText.

Другие вопросы по тегам