- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经使用提供程序来更改主题,这是浅色和深色主题的代码。我的问题的主要目的是通过开关而不是按钮来更改主题。可以使用“int 模式”正确地通过按钮更改主题。但是当我因为开关而使用“ bool 模式”时。该开关需要 true 或 false 值。
如何实现这个开关来改变明暗主题?我需要一个开关,而不是按钮。
import 'package:flutter/material.dart';
class AppStyleModeNotifier extends ChangeNotifier {
bool mode = true; //0 for light and 1 for dark
Color primaryBackgroundColor = Colors.white;
Color appBarBackgroundColor = Colors.cyan[200];
Color boxColor = Colors.blue[50];
Color boxTextColor = Colors.indigo;
Color primaryTextColor = Colors.white;
Color dashboardColor = Colors.cyan;
Color dashboardTextColor = Colors.red[600];
Color dashboardIconColor = Colors.yellow[200];
//Color typeMessageBoxColor = Colors.grey[200];
switchMode() {
if (mode == true) {
//if it is light mode currently switch to dark
primaryBackgroundColor = Colors.grey[900];
appBarBackgroundColor = Colors.grey[800];
// boxColor = Colors.grey[600];
boxColor = Colors.black;
boxTextColor = Colors.grey[100];
primaryTextColor = Colors.black;
dashboardColor = Colors.grey[900];
dashboardTextColor = Colors.grey[400];
dashboardIconColor = Colors.white;
//typeMessageBoxColor = Colors.grey[800];
mode = false;
} else {
//if it is dark mode currently switch to light
primaryBackgroundColor = Colors.white;
appBarBackgroundColor = Colors.cyan[200];
boxColor = Colors.tealAccent;
boxTextColor = Colors.indigo;
primaryTextColor = Colors.white;
dashboardColor = Colors.cyan;
dashboardTextColor = Colors.red[600];
dashboardIconColor = Colors.yellow[200];
//typeMessageBoxColor = Colors.grey[200];
mode = true;
}
notifyListeners();
}
}
下面是改变明暗主题的开关。此开关无法正常工作,代码中是否有任何错误。它没有使用按钮进行开关,但工作得很好。
import 'package:provider/provider.dart';
import '../FreelanceTheme/AppStyleModeNotifier.dart';
class HomePage extends StatelessWidget with NavigationStates {
const HomePage({Key key, this.onMenuTap}) : super(key: key);
@override
Widget build(BuildContext context) {
final appStyleMode = Provider.of<AppStyleModeNotifier>(context);
return MaterialApp(
home: Scaffold(
backgroundColor: Color(0xffE5E5E5),
appBar: AppBar(
elevation: 0,
backgroundColor: appStyleMode.appBarBackgroundColor,
actions: <Widget>[
Switch(
value: appStyleMode.mode,
onChanged: appStyleMode.switchMode(),
),
最佳答案
将代码更改为这样,就可以了。
Switch(
value: appStyleMode.mode,
onChanged: (value)=> appStyleMode.switchMode(),
),
关于Flutter:如何在 Flutter 中使用 Switch 更改主题 - 我已经使用 Provider 实现了此浅色和深色主题,但无法使用 switch 进行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63760663/
我正在我的 playground Android 应用中实现一个深色主题,并且正在努力将操作栏文本颜色设置为白色。 以下是我的风格和颜色。操作栏的背景沿用了colorPrimary,很棒。然而,两种颜
我正在尝试创建一个 HTML 页面,单击按钮时,主题会从深色变为浅色。 我遇到的问题是菜单图标。如果您更改为深色主题,然后打开和关闭菜单,则浅色和深色主题菜单图标显示或弹出菜单不会在其中显示任何内容,
我正在尝试找到正确的颜色。例如,如果我有深绿色,那么我需要浅绿色,或者如果我有浅绿色,那么我需要深绿色。我有一个代码可以告诉我颜色是深色还是浅色。 function calcBrightness(re
比如我发现即使不加粗体的Raleway字体,我也可以设置fontWeight: FontWeight.bold并且可以正常工作。那么为什么我们要添加粗体和黑色版本的字体呢? 最佳答案 当您将 font
我在来自 here 的游戏中使用 CCBlade这会在滑动时产生 Blade 效果,在黑屏上效果很好。但是当我尝试在较浅的彩色屏幕上使用它时遇到了问题,我的游戏有淡蓝色的天空颜色。我认为这与 CCBl
我怎样才能以某种方式显示在 Firebug 中显示的不可见标签的样式?我不知道为什么它们是苍白/看不见的,我需要找出原因。 最佳答案 Firebug 淡出那些在浏览器中不可见或隐藏的元素。根据此处显示
所以在 Angular Material 2 中,我设置了主题 $store-primary: mat-palette($mat-storecast); $store-accent: mat-pal
在 macOS 10.14 Mojave 中,创建自动绘制明暗版本的 NSImage 实例的唯一方法是通过 Assets 目录和 +[NSImage imageNamed:] .但是,我需要在运行时创
我在 createMuiTheme 中设置了调色板类型:深色,并将背景颜色更改为深色,这很好。但文本颜色保持黑色。难道不应该采用更浅的颜色吗? CodeSandbox 链接:https://codes
我的应用支持 iOS 13 深色模式,并为用户提供了匹配系统外观或强制应用始终使用深色模式或浅色模式的选项,无论系统设置如何。 该应用还允许在用户按下 UILabel 时显示上下文菜单。但是,当使用
如何在应用程序中切换主题?如果我覆盖默认样式怎么办?我也可以分别为明暗主题定义不同的样式吗?为什么图标 colos 会改变 - 即如果主题设置为深色,图标的黑色背景会变成白色。如果我将应用程序栏的背景
Link: https://50.62.213.246/gktest/ 搜索栏中的占位符文本和输入文本不会响应font-weight: 300;如果我尝试 font-weight: 700;文字是粗体
我是一名优秀的程序员,十分优秀!