优先选择带有抖动以节省色彩

时间:2019-10-06 20:37:44

标签: flutter flutter-layout

我希望容器是一种颜色,它来自sharedpreference或类似的东西!有一个小部件可以解决这个问题!或者我可以使用sharedpreference来做到这一点!!如果我能!怎么样?

2 个答案:

答案 0 :(得分:3)

使用颤抖的SharedPreferences插件,您只能保存String, int, StringList, double, Bool

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

第1步。安装插件

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

答案 1 :(得分: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);

保存颜色。