Fluttter ThemeData

Я хочу установить ThemeData в свой проект, но не могу установить правильный цвет фона, я думаю, что проблема в яркости ....

      theme: ThemeData(
        colorScheme: ColorScheme(
          primary: Color(0xFF0A0E21),
          onBackground: Colors.white,
          onError: Colors.yellow,
          onSecondary: Colors.white,
          onSurface: Colors.white,
          background: Colors.yellow,
          secondary: Colors.purple,
          surface: Color(0xFF0A0E21),
          secondaryVariant: Colors.white,
          error: Colors.red,
          primaryVariant: Color(0xFF0A0E21),
          onPrimary: Color(0xFF0A0E21),
          brightness: Brightness.dark,
        ),
      ),

Яркость не может быть нулевой, так как я могу решить, чтобы у фона был правильный цвет? Я прочитал этот фон для ThemeData, это пробел между элементами, если я прокручиваю вниз. Итак, как я могу установить в ThemeData правильный фон для моего каркаса?

3 ответа

вам нужно использовать код, как показано ниже

      return MaterialApp(
  theme: ThemeData(
    colorScheme: const ColorScheme.dark(
      primary: Color(0xffbb86fc),
      primaryVariant: Color(0xff3700B3),
      secondary: Color(0xffcf6679),
      secondaryVariant: Color(0xff03dac6),
      surface: Color(0xffcf6679),
      background: Color(0xff121212),
      error: Color(0xffcf6679),
      onPrimary: Colors.black,
      onSecondary: Colors.black,
      onSurface: Colors.white,
      onBackground: Colors.white,
      onError: Colors.black,
      brightness: Brightness.dark,
    ),
  ),
  home: const YourPage(), 
);

в этом случае никакое свойство не требуется, поэтому измените цвета по своему усмотрению.

Вы можете установить scaffoldBackgroundColor вашей themeData вот так.

      theme: ThemeData(
        colorScheme: ColorScheme(
          primary: Color(0xFF0A0E21),
          onBackground: Colors.white,
          onError: Colors.yellow,
          onSecondary: Colors.white,
          onSurface: Colors.white,
          background: Colors.yellow,
          secondary: Colors.purple,
          surface: Color(0xFF0A0E21),
          secondaryVariant: Colors.white,
          error: Colors.red,
          primaryVariant: Color(0xFF0A0E21),
          onPrimary: Color(0xFF0A0E21),
          brightness: Brightness.dark,
        ),
        scaffoldBackgroundColor: Colors.yellow,
      ),

Вместо того, чтобы пройти ThemeData, использовать Theme.of(context).copyWith(). Кроме того, я бы сказал, используйте themeMode а также darkTheme.

Вместо того, чтобы переопределять все, часто имеет смысл расширить родительскую тему. Вы можете справиться с этим, используя метод copyWith ().

       theme: Theme.of(context).copyWith(
        colorScheme: const ColorScheme(
          primary: Color(0xFF0A0E21),
          onBackground: Colors.white,
          onError: Colors.yellow,
          onSecondary: Colors.white,
          onSurface: Colors.white,
          background: Colors.yellow,
          secondary: Colors.purple,
          surface: Color(0xFF0A0E21),
          secondaryVariant: Colors.white,
          error: Colors.red,
          primaryVariant: Color(0xFF0A0E21),
          onPrimary: Color(0xFF0A0E21),
          brightness: Brightness.dark,
        ),

для большего количества тем

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