0

我正在尝试在颤振中使用 shared_preferences 创建一个“收藏夹”功能。

使用此方法在本地存储,无需数据库。

要使用的页面是globals.dart带有布尔变量的,button.dart即页面选择窗口(添加书签时更改按钮颜色),并且有一个home0_01.dart带有“收藏夹图标按钮(单击以将该按钮添加到收藏夹)”的文件。

在这里,我想实现它以使用 shared_prefer 本地存储

但是即使看很多示例代码,也很难实现。我的代码中有数百个,favoriteButton_0_01因为文件太多home0_01.dart。在这种情况下我应该如何编码?

globals.dart

library prj.com.globals;

bool favoriteButton_0_01 = true;
bool favoriteButton_0_02 = false;
...

按钮.dart

...
    LearnLevelButton(
                      color: favoriteButton_0_01 ? Colors.orange : Color(0xff7ba6f9),
                      text: '',
                      onTap: () async {
    
                          await Navigator.pushReplacement(context, MaterialPageRoute(builder: (context){
                            return home0_01();
                          }));
                      },
                      ),
...

home0_01.dart

      void delete() async {
    
        setState(() {
          favoriteButton_0_01 = false;
          print(favoriteButton_0_01);
        });
      }
    
      void saved() async {
    
        setState(() {
          favoriteButton_0_01 = true;
          print(favoriteButton_0_01);
        });
      }

...
actions: <Widget>[
            IconButton(
                onPressed: favoriteButton_0_01 ? delete : saved,
              icon: favoriteButton_0_01
                  ? Icon(Icons.bookmark_rounded, color: Colors.yellow[800], size: 30) 
                  : Icon(Icons.bookmark_add_outlined, color: Colors.yellow[800],size: 30),
            ),
          ],
...
4

1 回答 1

0

您可以观看本教程以完成类似的操作:https ://www.youtube.com/watch?v=TRB0qZ2XaO4 。这基本上是相同的想法。按一个按钮并将其添加到其他位置。希望这可能会有所帮助。

于 2021-10-06T17:22:35.300 回答