Мой обходной путь следующий:
Создание базы данных с
CREATE TABLE categories( iconData INTEGER, backgroundcolor INTEGER, name TEXT PRIMARY KEY)
My toMap () is
Map<String, dynamic> toMap() {
// Color is stored in a 32-bit integer with alpha, red, green, blue -> ARGB
int bc = backgroundcolor.alpha << 8;
bc = bc + backgroundcolor.red << 8;
bc = bc + backgroundcolor.green << 8;
bc = bc + backgroundcolor.blue;
return {
'iconData': iconData.codePoint,
'backgroundcolor': bc,
'name': name
};
Я прочиталмои категории с
Future<List<Category>> getCategoriesFromDatabase() async {
// get reference to database
final Database db = await database;
// Query the table for all categories
final List<Map<String, dynamic>> maps = await db.query('categories');
print("Categories read.");
// Convert the List<Map<String, dynamic> into a List<Category>
return List.generate(maps.length, (i) {
// Construct backgroundcolor
Color bc = Color(maps[i]['backgroundcolor']);
// Construct iconData
IconData id =
IconData(maps[i]['iconData'], fontFamily: Icons.ac_unit.fontFamily);
return Category(
name: maps[i]['name'],
iconData: id,
backgroundcolor: bc,
);
});
}
Этот обходной путь должен работать для большинства типов данных.Например, я использую то же решение для хранения дат.Я сохраняю год, месяц, день, и при чтении из БД я строю дату дротика.