flutter 抖动配色方案未应用颜色

k3bvogb1  于 2023-03-19  发布在  Flutter
关注(0)|答案(2)|浏览(138)

我尝试在Flutter应用程序中使用黑暗主题,但似乎一切都不对。我使用的黑暗主题如下。

ThemeData darkTheme = ThemeData.from(
  useMaterial3: true,
  colorScheme: ColorScheme.dark(
    brightness: Brightness.dark, // tried with or without this line
  ),
  textTheme: GoogleFonts.robotoTextTheme(),
);

有了这个 ThemeData,我的应用程序的背景是黑暗的,但文本也是黑暗的,这不应该是黑暗的。
这是我在光主题中看到的。

这是我在黑暗主题中看到的。

我不明白为什么类别文本是黑色的。
这是我的文本小工具:

const Text(
  'Categories',
  style: TextStyle(
    fontSize: 20,
    fontWeight: FontWeight.bold,
  ),
),

当我不给予文本小部件任何颜色值时,我希望它是浅色的。
我试过使用种子的ColorScheme,
我也尝试过在ColorScheme中设置所有自定义颜色,如 onPrimaryonBackground 和所有其他颜色,但文本仍然是黑色。
另一方面,在AppBar中,它工作得恰到好处。黑色背景上的白色文本。
我错过了什么?

mbjcgjjk

mbjcgjjk1#

您需要将当前主题的textTheme传递给GoogleFonts。

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        title: 'Flutter Demo',
        theme: _buildTheme(Brightness.light),
        darkTheme: _buildTheme(Brightness.dark),
        themeMode: ThemeMode.dark,
        home: const Home());
  }

  ThemeData _buildTheme(Brightness brightness) {
    var baseTheme = ThemeData(brightness: brightness);

    return baseTheme.copyWith(
      colorScheme: _customColorScheme,
      textTheme: GoogleFonts.lobsterTextTheme(baseTheme.textTheme),
      useMaterial3: true,
    );
  }
}
shyt4zoc

shyt4zoc2#

GoogleFonts.robotoTextTheme()内添加颜色
比如这个代码

ThemeData darkTheme = ThemeData.from(
  useMaterial3: true,
  colorScheme: ColorScheme.dark(
    brightness: Brightness.dark, // tried with or without this line
  ),
  textTheme: GoogleFonts.robotoTextTheme(color: Colors.white), //change it with the color you want
);

相关问题