【问题标题】:How to reorder a Sembast Store如何重新订购 Sembast 商店
【发布时间】:2023-03-06 08:05:01
【问题描述】:

我创建了一个允许用户创建自己的锻炼计划的应用程序。因此,我将练习存储在 sembast 商店中。

我想知道是否以及如何重新安排锻炼。我打算使用 ReordarableListView,但我只是不明白如何更新商店中的数据。我认为最好的方法是使用他们自己的 sembastkey(在我的情况下为 int)重新排序练习。但我就是不认识人哈哈哈。

假设我已将练习 7 拖到练习 3 的上方,那么使用练习 N (N >3) 完全破坏并重新创建所有练习的列表会不会过大?这是我能想到的唯一方法,但我希望有更有效的方法。如果有人能给我提示如何更轻松地解决此任务,我将非常高兴。 提前谢谢你

【问题讨论】:

    标签: list flutter sembast


    【解决方案1】:

    这不是特定于 sembast 的,但确实不是总是很容易解决。通常我会添加一个可以是 int 的“排序”列。移动一个项目意味着更新排序值

    如果我们有具有给定排序值的项目 A、B 和 C

    A 100
    B 200
    C 300
    

    如果想在 B 和 C 之间移动 A,则可以将 A 排序值设置为 250

    B 200
    A 250
    C 300
    

    如果 B 和 C 之间没有值,则此解决方案会变得更加复杂,因为您必须同时更新 A 和 B 或 C 排序值

    最简单的解决方案是存储一个包含所有键的单个列表的附加单例,即[A,B,C],而不更改您的记录,并且仅在移动项目时更新此单例。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 1970-01-01
      • 2019-06-12
      • 2020-11-12
      • 2017-01-29
      • 2016-09-27
      • 2019-05-29
      • 2018-04-02
      • 1970-01-01
      相关资源
      最近更新 更多