在颤动中打开具有不同适配器的蜂巢盒

Posted

技术标签:

【中文标题】在颤动中打开具有不同适配器的蜂巢盒【英文标题】:Open hive box with different adapters in flutter 【发布时间】:2021-03-28 17:21:36 【问题描述】:

我有 2 个适配器。我已经在 main 方法中注册了两个适配器。我只有一个盒子,因为数据库只有一个,里面的表可以是多个。

所以我无法在蜂巢中打开具有不同适配器的同一个盒子。

例如:

 Hive.openBox<Adapter1>(box1);
 
 Hive.openBox<Adapter2>(box1);

我想做这件事。

【问题讨论】:

【参考方案1】:

盒子的适配器描述了它的架构,并确定了可以在该特定盒子中存储哪些类型的对象。通常,您将为应用程序中的自定义对象创建(或更可能使用 build_runner 包生成)自定义适配器。因此,为一个盒子注册多个适配器是没有意义的。如果您查看为这些适配器生成的实际上非常简单的代码,它将清楚地说明为什么这是不可能的。如果您的应用中有不同的类要使用 Hive 持久化,则必须为每个类设置一个新框(并注册相关的适配器)。

【讨论】:

以上是关于在颤动中打开具有不同适配器的蜂巢盒的主要内容,如果未能解决你的问题,请参考以下文章

在 NestedScrollView 中使用两个具有不同适配器的 RecyclerView 加载速度非常慢

在颤动的蜂巢中按日期检索数据

在选项卡之间滑动期间颤动蜂巢清除框

用于 Geopoint 的 Flutter Hive 适配器

多个适配器或一个适配器用于不同的列表和对象 - 代码性能

适配器和外观模式