Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 类型为'的值;主题数据';can';无法从方法'返回;构建';因为它的返回类型为';小部件';_Flutter_Dart - Fatal编程技术网

Flutter 类型为'的值;主题数据';can';无法从方法'返回;构建';因为它的返回类型为';小部件';

Flutter 类型为'的值;主题数据';can';无法从方法'返回;构建';因为它的返回类型为';小部件';,flutter,dart,Flutter,Dart,我有如下代码 import 'package:flutter/material.dart'; class MyAppTheme extends StatelessWidget { @override Widget build(BuildContext context) { return ThemeData(primaryColor: Colors.yellow); } } 我得到这个错误 无法从方法“build”返回类型为“ThemeData”的值,因为它的返回类型

我有如下代码


import 'package:flutter/material.dart';

class MyAppTheme extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ThemeData(primaryColor: Colors.yellow);
  }
}


我得到这个错误

无法从方法“build”返回类型为“ThemeData”的值,因为它的返回类型为“Widget”

我已经尝试了一段时间,比如更改
构建
返回
类型,并将其置于另一种类型,例如
动态
,但它不能像它只期望的那样工作
小部件


那么,如果我想将我的
主题数据
拆分到另一个文件,我该怎么办?有什么想法吗?非常欢迎您发布自己的解决方案

您无法返回主题数据,因为它不是小部件,所以无法在屏幕上呈现,这就是为什么Flatter会给您这个错误。像这样使用主题数据

MaterialApp(
  title: title,
  theme: ThemeData(
    // Define the default brightness and colors.
    brightness: Brightness.dark,
    primaryColor: Colors.lightBlue[800],
    accentColor: Colors.cyan[600],

    // Define the default font family.
    fontFamily: 'Georgia',

    // Define the default TextTheme. Use this to specify the default
    // text styling for headlines, titles, bodies of text, and more.
    textTheme: TextTheme(
      headline1: TextStyle(fontSize: 72.0, fontWeight: FontWeight.bold),
      headline6: TextStyle(fontSize: 36.0, fontStyle: FontStyle.italic),
      bodyText2: TextStyle(fontSize: 14.0, fontFamily: 'Hind'),
    ),
  )
);

正如您正确判断的那样,
主题数据
根本不是一个
小部件
。如果您试图创建
主题数据
以插入
MaterialApp
或类似文件的
主题
参数,您只需创建一个顶级变量:

final myAppTheme = ThemeData(primaryColor: Colors.yellow);

  // somewhere else
  return MaterialApp(
    theme: myAppTheme,
    // ...
  );