我的代码如下
import 'package:flutter/material.dart';
class MyAppTheme extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ThemeData(primaryColor: Colors.yellow);
}
}
我收到此错误
方法'build'不能返回类型'ThemeData'的值,因为它的返回类型为'Widget'
我已经尝试了一段时间,例如更改return
的{{1}}类型并将其设置为另一种类型,例如build
,但由于仅期望{{1 }}
如果我想将dynamic
拆分到另一个文件怎么办?有任何想法吗?非常欢迎您发布自己的解决方案
答案 0 :(得分:1)
如您所正确确定的,ThemeData
根本不是Widget
。如果您尝试创建一个ThemeData
来插入theme
或类似参数的MaterialApp
参数中,则可以创建一个顶级变量:
final myAppTheme = ThemeData(primaryColor: Colors.yellow);
// somewhere else
return MaterialApp(
theme: myAppTheme,
// ...
);
答案 1 :(得分:-1)
您不能返回ThemeData,因为它不是窗口小部件,因此无法在屏幕上呈现,这是为什么会突然出现此错误。像这样使用ThemeData
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'),
),
)
);