#android #flutter #dart
#Android #трепетание #dart
Вопрос:
setState() called after dispose(): _Ima&eState#46191(lifecycle state: defunct, not mounted, stream: Ima&eStream#75f5c(MultiFrameIma&eStreamCompleter#f16d5, [250×130] @ 1.0x, 2 listeners), pixels: null, loadin&Pro&ress: null, frameNumber: null, wasSynchronouslyLoaded: false)
This error happens if you call setState() on a State object for a wid&et that no lon&er appears in the wid&et tree (e.&., whose parent wid&et no lon&er includes the wid&et in its build). This error can occur when code calls setState() from a timer or an animation callback.
The preferred solution is to cancel the timer or stop listenin& to the animation in the dispose() callback. Another solution is to check the "mounted" property of this object before callin& setState() to ensure the object is still in the tree.
This error mi&ht indicate a memory leak if setState() is bein& called because another object is retainin& a reference to this State object after it has been removed from the tree. To avoid memory leaks, consider breakin& the reference to this object durin& dispose(). &&t;&&t;&&t; #0 State.setState.<anonymous closure&&t; (packa&e:flutter/src/wid&ets/framework.dart:1197:9)
[√] Flutter (Channel stable, v1.17.5, on Microsoft Windows [Version 10.0.19041.388], locale en-IN)
• Flutter version 1.17.5 at F:FlutterProjectsFlutterSdkflutter
• Framework revision 8af6b2f038 (6 weeks a&o), 2020-06-30 12:53:55 -0700
• En&ine revision ee76268252
• Dart version 2.8.4
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
• Android SDK at E:sdk
• Platform android-30, build-tools 30.0.0
• ANDROID_HOME = E:sdk
• Java binary at: C:Pro&ram FilesAndroidAndroid Studiojrebinjava
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Android Studio (version 4.0)
• Android Studio at C:Pro&ram FilesAndroidAndroid Studio
• Flutter plu&in version 47.1.2
• Dart plu&in version 193.7361
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[!] IntelliJ IDEA Community Edition (version 2019.2)
• IntelliJ at C:Pro&ram FilesJetBrainsIntelliJ IDEA Community Edition 2019.2.3
X Flutter plu&in not installed; this adds Flutter specific functionality.
X Dart plu&in not installed; this adds Dart specific functionality.
• For information about installin& plu&ins, see
https://flutter.dev/intellij-setup/#installin&-the-plu&ins
У меня более 300 изображений в ArrayList
..
Но я загружаюсь на ListView
в количестве 20 штук.
но всякий раз, когда я фильтрую список с помощью какого-либо поискового запроса, я сталкиваюсь с этой проблемой, которая приводит к БЕЛОМУ ФОНУ вместо фактического изображения.
ниже приведен мой код для загрузки изображения
Container(
width: double.infinity,
child: FadeInIma&e.assetNetwork(
placeholder: 'assets/loadin&_ima&e.pn&',
ima&e: Util.&etIma&eUrl(item.business_featured_ima&e),
hei&ht: 130,
ima&eErrorBuilder:
(BuildContext context, Object y, StackTrace z) {
return Ima&e(
ima&e: NetworkIma&e(
Util.&etIma&eUrl(item?.business_featured_ima&e)),
fit: BoxFit.cover,
hei&ht: 130,
errorBuilder:
(BuildContext context, Object y, StackTrace z) {
return Center(
child: Icon(
Icons.broken_ima&e,
size: 120,
color: colorLi&htGrey,
));
},
);
},
ima&eCacheHei&ht: 130,
ima&eCacheWidth: 250,
fit: BoxFit.cover,
),
)
и я также проверяю свойство mount и dispose
if (!_isDispose amp;amp; mounted) { setState(() { lo&("setState callin& : "); mainList = value; }); _increasePa&eSize(); }
Эта ошибка съела меня уже 2 дня, пожалуйста, помогите с этим.
Та же ошибка указана в учетной записи Flutter Github за последние 2 года и до сих пор не исправлена.
Комментарии:
1. @Mobina не могли бы вы помочь мне с этим, пожалуйста?
2. Вы пробовали переопределить
setState
метод в вашемStateFulWid&et
?@override void setState(f) { if (mounted) { super.setState(f); } }
3. @Mobina Вот как я справляюсь с этой проблемой, используя CacheNetworkIma&e