Flutter Hive 商店颜色

Abu*_*azi 3 dart flutter flutter-hive

我需要将颜色存储在我的 Hive 数据库中以便在我的电子商务应用程序中检索,它给了我下面的错误,说我需要制作一个适配器,谁能告诉我如何制作颜色适配器?

part 'items_model.g.dart';

@HiveType(typeId: 0)
class Item {
  @HiveField(0)
  final String name;
  @HiveField(1)
  final double price;
  @HiveField(2)
  final String? description;
  @HiveField(3)
  var image;
  @HiveField(4)
  final String id;
  @HiveField(5)
  final String shopName;
  @HiveField(6)
  final List<Category> category;
  @HiveField(7)
  Color? color;
  @HiveField(8)
  int? quantity;
  Item({
    required this.category,
    required this.image,
    required this.name,
    required this.price,
    this.description,
    required this.id,
    required this.shopName,
    this.color,
    required this.quantity,
  });



}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何生成或创建颜色适配器?因为我不知道怎么做

E/flutter ( 4621): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: HiveError: Cannot write, unknown type: MaterialColor. Did you forget to register an adapter?
Run Code Online (Sandbox Code Playgroud)

Lor*_*n.A 7

我认为这里最简单的事情就是存储int颜色的值。

这是一个例子。

final colorValue = Colors.blue.value; // colorValue is an integer here
Run Code Online (Sandbox Code Playgroud)

所以你的Hive颜色可以像这样存储

@HiveField(7)
int? colorValue;
Run Code Online (Sandbox Code Playgroud)

然后,在您的应用程序中,当您从存储创建颜色时,它会看起来像这样。

final item = Item(...however you initialize your Item);

final color = Color(item.colorValue);
Run Code Online (Sandbox Code Playgroud)