我必须在我的应用程序上实现一个在 x 轴上具有日期时间值的图表。我目前正在使用fl_chart,但对于 x 轴上带有 DateTime 值的图表有一些未解决的问题,这阻止我继续使用这个库(#462、#438)。
我可以使用哪个库来绘制这个图表,并且至少可以在颜色和样式上进行一些自定义?
在我的 Flutter 应用程序上,我需要解析一个包含 100k 或更多元素列表的 JSON。因此,不能不堆叠 UI 线程,我使用 Isolate 将工作负载移至单独的线程中。问题是性能下降了很多:如果没有 Isolate,函数在 20/30 秒内就结束了,而有了 Isolate,它只解析了 2% 的元素。
由于我是隔离新手,我做错了什么吗?或者我可以以某种方式改进我的代码吗?
Future<ServiceResponse> _createServiceResponse(
Map<String, dynamic> map,
) async {
Map<String, dynamic> responseMap = {};
List<Ean> eans = List.empty(growable: true);
List<Article> articles = List.empty(growable: true);
responseMap["assortment"] =
AssortmentJson.fromJson(map).convertToObox().convertToDomain();
if (map.containsKey("article")) {
int counter = 0;
for (var element in (map["article"] as List<dynamic>)) {
String progress =
"${(counter++ / map["article"].length * 100).toInt()}%";
LoadingOverlay.of(context).attachText(progress);
Map<String, dynamic> item = element as Map<String, dynamic>;
var (article, eanList) =
await Isolate.run(() => _createArticlesAndEanList(item));
articles.add(article);
eans.addAll(eanList);
}
}
responseMap["articles"] = articles;
responseMap["eans"] = eans;
return ServiceResponse(ok: true, payload: responseMap);
}
static Future<(Article, List<Ean>)> _createArticlesAndEanList(
Map<String, dynamic> articleJson) async {
List<Ean> eans = List.empty(growable: true);
var article = ArticleJson.fromJson(
articleJson.convertIdToInt().convertDateFormatToAppFormat())
.convertToObox(assignReferences: false)
.convertToDomain();
Map<String, int?> propertyNotAssigned = {};
if (articleJson.containsKey("ean")) {
eans.addAll((articleJson["ean"] as List<dynamic>).map((e) =>
EanJson.fromJson((e as Map<String, dynamic>).convertIdToInt())
.convertToObox(
assignReferences: false,
propertyNameToId: propertyNotAssigned)
.convertToDomain()
.assignArticleFromArticleList(article)));
}
return (article, eans);
}