【问题标题】:Sharedpreferencs with flutter to save color带有颤振的共享偏好以节省颜色
【发布时间】:2020-02-04 05:54:51
【问题描述】:

我希望容器具有某种颜色,它来自 sharedpreference 或类似的东西!有没有解决这个问题的小工具!!或者我可以通过共享偏好来做到这一点!如果我能!如何?

【问题讨论】:

    标签: flutter flutter-layout


    【解决方案1】:

    更好的方法是保存color.value

    使用

    final prefs = await SharedPreferences.getInstance();
    Color myColor = Color(prefs.getInt('color') ?? Colors.blue.value);
    // change Colors.blue to a default color
    

    获取颜色,并且

    prefs.setInt('color', myColor.value);
    

    保存颜色。

    【讨论】:

      【解决方案2】:

      使用flutter SharedPreferences插件只能保存String, int, StringList, double, Bool

      解决方法是将颜色的RGBO 值保存在SharedPreferences 中,这适用于Android 和iOS。

      第一步:安装插件

      pubspec.yaml

      将 SharedPreferences 添加到您的 pubspec.yaml 文件中。点击here查看最新版本。

      dependencies:
        flutter:
          sdk: flutter
      
        shared_preferences: ^0.5.3+4
      

      步骤 2. 将 RGBO 值保存到 SharedPreferences

        void saveColor(int r, int g, int b, double opacity) async {
          final prefs = await SharedPreferences.getInstance();
          prefs.setInt('r', r);
          prefs.setInt('g', g);
          prefs.setInt('b', b);
          prefs.setDouble('o', opacity);
        }
      

      第 3 步。检索值并创建您的颜色

      getColor() async {
          final prefs = await SharedPreferences.getInstance();
          final r = prefs.getInt('r');
          final g = prefs.getInt('g');
          final b = prefs.getInt('b');
          final opacity = prefs.getDouble('o');
          return Color.fromRGBO(r, g, b, opacity);
        }
      

      【讨论】:

      • 如何使用 flutter/material.dart 的实例“Color”类并通过 SharedPreferences ?
      • SharedPreferences 只保存String, int, StringList, double, bool,因此您不能将Color 实例传递给SharedPreferences。解决方法在答案中。
      猜你喜欢
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2019-12-23
      • 2021-12-31
      • 2021-01-13
      • 1970-01-01
      相关资源
      最近更新 更多