📜  如何在 Flutter 中获取小部件内的主题颜色 - Dart (1)

📅  最后修改于: 2023-12-03 14:52:17.537000             🧑  作者: Mango

如何在 Flutter 中获取小部件内的主题颜色 - Dart

在 Flutter 中,小部件可以使用当前应用程序的主题颜色。但是如何在代码中获取该颜色呢?

使用 Theme.of() 方法

Theme.of() 方法可以帮助你获取小部件内的主题颜色。以下是一个示例:

Text(
  'Hello World!',
  style: TextStyle(
    color: Theme.of(context).accentColor,
  ),
),

在上面的代码中,我们使用 Theme.of() 方法获取了 accentColor,然后将其用作文本颜色。

如何在自定义小部件中获取主题颜色

如果你想在自定义小部件中获取主题颜色,可以使用以下方法:

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      color: Theme.of(context).primaryColor,
      child: Text(
        'Hello World!',
        style: TextStyle(
          color: Theme.of(context).accentColor,
        ),
      ),
    );
  }
}

在上面的代码中,我们在 Container 的颜色属性中使用 primaryColor,在子 Text 小部件的样式属性中使用 accentColor

总结

在 Flutter 中,使用 Theme.of() 方法可以轻松获取小部件内的主题颜色。记住,这个方法只能在 build() 方法内部调用,因为主题信息是在该方法内部创建并传递给小部件的。

以上是如何在 Flutter 中获取小部件内的主题颜色的介绍,希望对你有所帮助!