我已经为扑动项目实现了暗模式,该模式使用放置在抽屉中的Swich来打开/关闭,您可以看到以下代码:
final themeChange = Provider.of<DarkThemeProvider>(context);
ListTile(
leading: Icon(Icons.brightness_2, size: 30.0, color: Colors.blue),
title: Text('night mode', style: TextStyle(fontSize: 18.0)),
trailing: Switch(
value: themeChange.darkTheme,
onChanged: (bool value) {
themeChange.darkTheme = value;
},
),
),
这是课程
import 'package:flutter/foundation.dart';
import 'package:azkar/core/shared/sharedpreferances.dart';
class DarkThemeProvider with ChangeNotifier {
DarkThemePreference darkThemePreference = DarkThemePreference();
bool _darkTheme = false;
bool get darkTheme => _darkTheme;
set darkTheme(bool value) {
_darkTheme = value;
darkThemePreference.setDarkTheme(value);
notifyListeners();
}
}
我现在面临的情况是某些屏幕没有抽屉。因此,我希望能够从这些屏幕的应用程序栏中打开/关闭暗模式,因为您知道在应用程序栏中放置开关看起来不太好。我该如何放置一个图标来做到这一点,当它打开并返回组织时,该图标将变为另一个图标。更改为关闭时显示图标。
答案 0 :(得分:1)
我设法得到如下答案:
首先添加此变量:
var _icon = Icons.wb_sunny;
然后实现此代码以更改图标并在暗模式和亮模式之间切换功能:
IconButton(
icon: Icon(
_icon,
color: Colors.white,
size: 30,
),
onPressed: () {
setState(() {
if (_icon == Icons.wb_sunny) {
_icon = Icons.brightness_2;
themeChange.darkTheme = true;
} else {
_icon = Icons.wb_sunny;
themeChange.darkTheme = false;
}
});
},
),