在 IOS 中使用 "cacheExtent: double.infinity" 时出现 ListView 错误
ListView Error while using the "cacheExtent: double.infinity" in IOS
为了提高性能,我在 Listview 中使用了 cacheExtent: double.infinity。但在 ios 中弹出一个错误。如何修复此错误以及为什么会出现此错误?
代码:
ListView.separated(
cacheExtent: double.infinity,
padding: EdgeInsets.only(left: 16, right: 16, top: 8, bottom: 8),
itemCount: 200,
itemBuilder: (_, index) {
return _buildItem();
},
separatorBuilder: (context, index) {
return Divider(
color: AppColors.app_list_divider,
);
},
)
错误:
颤振:[2022-02-16 16:39:40.239153 |捕手 | FINE] 错误:''package:flutter/src/semantics/semantics.dart':断言失败:第 1592 行 pos 12:'value.isFinite':SemanticsNode#60(Rect.fromLTRB(0.0, 0.0, 0.0, 0.0),标签:[RenderViewport.twoPane], invisible) (with null) 试图设置一个非有限矩形。'由于在 3000 毫秒内发生重复,已被跳过。
我今天遇到了同样的问题。不要使用 double.infinity
,而是尝试使用 double.maxFinite
,像这样:
ListView.separated(
cacheExtent: double.maxFinite,
...
);
根据文档,这是它们背后的值:
static const double nan = 0.0 / 0.0;
static const double infinity = 1.0 / 0.0;
static const double negativeInfinity = -infinity;
static const double minPositive = 5e-324;
static const double maxFinite = 1.7976931348623157e+308;
它对我有用,希望对你也有用:)
为了提高性能,我在 Listview 中使用了 cacheExtent: double.infinity。但在 ios 中弹出一个错误。如何修复此错误以及为什么会出现此错误?
代码:
ListView.separated(
cacheExtent: double.infinity,
padding: EdgeInsets.only(left: 16, right: 16, top: 8, bottom: 8),
itemCount: 200,
itemBuilder: (_, index) {
return _buildItem();
},
separatorBuilder: (context, index) {
return Divider(
color: AppColors.app_list_divider,
);
},
)
错误:
颤振:[2022-02-16 16:39:40.239153 |捕手 | FINE] 错误:''package:flutter/src/semantics/semantics.dart':断言失败:第 1592 行 pos 12:'value.isFinite':SemanticsNode#60(Rect.fromLTRB(0.0, 0.0, 0.0, 0.0),标签:[RenderViewport.twoPane], invisible) (with null) 试图设置一个非有限矩形。'由于在 3000 毫秒内发生重复,已被跳过。
我今天遇到了同样的问题。不要使用 double.infinity
,而是尝试使用 double.maxFinite
,像这样:
ListView.separated(
cacheExtent: double.maxFinite,
...
);
根据文档,这是它们背后的值:
static const double nan = 0.0 / 0.0;
static const double infinity = 1.0 / 0.0;
static const double negativeInfinity = -infinity;
static const double minPositive = 5e-324;
static const double maxFinite = 1.7976931348623157e+308;
它对我有用,希望对你也有用:)