【问题标题】:Save multiple color data保存多种颜色数据
【发布时间】:2021-03-19 13:02:10
【问题描述】:

我开始创建/开发一个项目,但在某些时候我卡住了,我想不通。希望大家帮忙!

现在我正在更改容器的颜色,如下所示;

InkWell(
        onTap: (){
           setState(() {
               if(_color == null)
               {
                _color = Colors.blue;
               }
               else if(_color == Colors.blue)
               {
                _color = null;
               }
               });
               },
        onDoubleTap: (){
           setState(() {
           if(_color == null)
           {
           _color = Colors.red;
           }
           else if(_color == Colors.red)
           {
           _color = null;
           }
           });
           },
            child: Container(
               height: _height*0.04,
               child: Container(decoration: BoxDecoration(color: _color),)),),

我想将此颜色作为用户信息保存在 firestore 中或将数据保存在 SharedPreferences 中。

另外,我使用的容器数量太多。我不知道如何一一选择/获取它们。我需要你尽快的帮助。谢谢

【问题讨论】:

    标签: flutter firebase-realtime-database colors sharedpreferences


    【解决方案1】:

    点击后可以存储颜色的值。

    onTap: () async {
      setState(() {
        if (_color == null) {
          _color = Colors.blue;
        } else if (_color == Colors.blue) {
          _color = null;
        }
      });
    
      SharedPreferences prefs = await SharedPreferences.getInstance();
      prefs.setInt('colorKey', _color.value);
    },
    

    下次启动应用时,您需要从 SharedPreferences 中读取颜色

    SharedPreferences prefs = await SharedPreferences.getInstance();
    final int colorValue = prefs.getInt('colorKey');
    if (colorValue != null) {
      _color = Color(colorValue);
    }
    

    【讨论】:

    • 那么我必须为每种颜色分配一个变量吗?像_color1,_color2
    • 如果你想全部存储它们是的。您还可以创建颜色列表并将它们与 SharedPreferences 一起存储。但请记住,SharedPreferences 仅支持 List
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    相关资源
    最近更新 更多