我创建了Friendly Chat app,想添加一个不同主题的新屏幕,但不起作用:-(
整个应用有Brightness.dark
个主题:
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
print("build MaterialApp");
return new MaterialApp(
title: 'Friendly Chat',
theme: kTheme,
home: new ChatScreen(),
routes: <String, WidgetBuilder>{
SettingsScreen.PATH: (BuildContext context) => new SettingsScreen()
},
);
}
}
final ThemeData kTheme = new ThemeData(
primarySwatch: Colors.indigo,
primaryColor: Colors.indigoAccent[100],
primaryColorBrightness: Brightness.dark,
);
当用户单击按钮时,我会按下设置屏幕:
Map results = await Navigator.of(context).pushNamed(SettingsScreen.PATH);
在设置屏幕中,我更改了AppBar
的backgroundColor
和brightness
,但新的/不同的brightness
没有效果(更改backgroundColor
工作)
class SettingsScreen extends StatefulWidget {
@override
State createState() => new SettingsScreenState();
}
class SettingsScreenState extends State<SettingsScreen> {
@override
Widget build(BuildContext context) {
return new WillPopScope(
onWillPop: _onWillPop,
child: new Scaffold(
appBar: new AppBar(
title: new Text("Settings"),
backgroundColor: Colors.amberAccent[700],
brightness: Brightness.light,
),
),
);
}
}
如何将设置屏幕AppBar主题更改为浅色主题?
EDIT个
最后我想:
所有屏幕均采用深色AppBar背景色,标题和图标均为白色
设置屏幕(仅限)有一个浅AppBar背景色,带有深色标题和图标
Bonus points:如何为整个屏幕设置不同的主题,而不仅仅是AppBar