在我的matches <- apply(genos[1:2,,], MARGIN = 3, function(x) any(x[1,] %in% x[2,]))
sum(matches)
[1] 5
which(matches)
[1] 6 7 8 9 13
中,我使用属性MaterialApp
和theme
,以便在用户切换其全局设备主题时可以利用它。但是,我遇到了一个问题,即用户切换主题时状态栏和导航栏不会更改。我使用的是路由系统,所以我的darkTheme
属性中什么也没有,我只有home
。
我在初始路线页面上有这样的代码:
initialRoute
但是,仅当我重新启动应用程序并且更改主题时,它才起作用。我知道我可能必须重建class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Builder(builder: (BuildContext context) {
final MediaQueryData mediaQuery = MediaQuery.of(context);
if (mediaQuery.platformBrightness == Brightness.dark) {
Themes.setDarkSystemColors();
} else {
Themes.setLightSystemColors();
}
return Scaffold(
appBar: CustomAppBar(title: "Home"),
drawer: CustomDrawer(),
body: SizedBox(),
);
});
}
}
,但是我不确定该怎么做。我当时在想一个MaterialApp
,但我不知道。如果有人可以帮助我,那就太好了。
答案 0 :(得分:0)
这就是我更改导航栏颜色以及暗/亮/系统主题更改的方式:
child: Consumer<Preferences>(
builder: (context, preferences, child) {
var app = MaterialApp(
title: 'dikt',
initialRoute: '/',
routes: {
'/': (context) {
SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle(
systemNavigationBarColor:
Theme.of(context).canvasColor, // navigation bar color
//statusBarColor: Colors.pink, // status bar color
));
return Lookup();
},
},
themeMode: preferences.themeMode,
theme: lightTheme,
darkTheme: darkTheme,
);
https://github.com/maxim-saplin/dikt/blob/master/lib/main.dart
请注意,我正在使用允许用户更改主题的自定义首选项提供程序。