【问题标题】:Flutter: change dark mode switch to an IconFlutter:将暗模式开关更改为图标
【发布时间】:2020-11-06 13:53:21
【问题描述】:

我已经为我的颤振项目实现了暗模式,该项目使用放置在抽屉中的 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();
  }
}

我现在面临的情况是某些屏幕没有抽屉。因此,我希望能够从这些屏幕的应用栏中打开/关闭暗模式,因为您知道将开关放在应用栏中并不好看。我怎样才能放一个图标来做到这一点,当它打开并返回到组织时,图标将变为另一个图标。变为关闭时的图标。

【问题讨论】:

    标签: flutter dart


    【解决方案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;
                    }
                  });
                },
              ),
    

    【讨论】:

      猜你喜欢
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 2020-12-06
      • 2017-10-06
      相关资源
      最近更新 更多