gpt4 book ai didi

flutter - flutter :将黑暗模式开关更改为图标

转载 作者:行者123 更新时间:2023-12-03 02:59:53 27 4
gpt4 key购买 nike

我为 flutter 项目实现了暗模式,该模式使用放置在抽屉中的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();
}
}
我现在面临的情况是某些屏幕没有抽屉。因此,我希望能够从这些屏幕的应用程序栏中打开/关闭暗模式,因为您知道在应用程序栏中放置开关看起来不太好。我该如何放置一个图标来做到这一点,当它打开并返回组织时,该图标将变为另一个图标。更改为关闭时的图标。

最佳答案

我设法得到如下答案:
首先添加此变量:

  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;
}
});
},
),

关于flutter - flutter :将黑暗模式开关更改为图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62942430/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com