Comments (11)
你tab没有做缓存? 还有你为啥不在页面dispose的时候 dispose掉资源。请认真看看demo
from loading_more_list.
@override
void initState() {
super.initState();
_goodListModel = GoodListModel();
}
@override
void dispose() {
_goodListModel?.dispose();
super.dispose();
}
我大概是这么写的, 然后还是会闪退, 我tab不保持的, 换一个就重新reload, 所以没做缓存,
我把GoodListModel内的addAll()注释掉之后就没有闪退情况了, 我用xcode去查是一个操控了一个为null的内存
from loading_more_list.
flutter 层面的报错是不会闪退的
from loading_more_list.
flutter 层面的报错是不会闪退的
他是这个list操作的是ios那边的内存, 然后这个界面被销毁的时候, 这个list也没了,异步操作了addAll, 导致再次使用了销毁的list, 然后闪退了
from loading_more_list.
听不懂你的意思。。。有能固定重现的demo吗
from loading_more_list.
class GoodsList extends StatefulWidget {
const GoodsList({
Key key,
}) : super(key: key);
@override
State<StatefulWidget> createState() {
return GoodsListState();
}
}
class GoodsListState extends State<GoodsList> {
GoodListModel _goodListModel;
@override
void initState() {
super.initState();
_goodListModel = GoodListModel(setting: _setting);
}
@override
void dispose() {
_goodListModel?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return LoadingMoreSliverList(
SliverListConfig(
itemBuilder: (BuildContext context, dynamic data, int index) {
Widget child = GoodsCardTemplate(
data: data,
);
return child;
},
sourceList: _goodListModel,
),
);
}
}
class GoodListModel extends LoadingMoreBase {
int pageNo = 1;
int _pageSize = 16;
bool _hasMore = true;
bool forceRefresh = false;
@override
bool get hasMore => _hasMore || forceRefresh;
@override
Future<bool> refresh([bool clearBeforeRequest = false]) async {
_hasMore = true;
pageNo = 1;
forceRefresh = !clearBeforeRequest;
var result = await super.refresh(clearBeforeRequest);
forceRefresh = false;
return result;
}
@override
Future<bool> loadData([bool isloadMoreAction = false]) async {
bool isSuccess = false;
fianl List res = // http
if (res != null) {
isSuccess = true;
if (res.length < _pageSize) {
_hasMore = false;
}
addAll(res);
pageNo++;
}
return isSuccess;
}
}
上面就是我loadmoreList的写法
from loading_more_list.
能运行,能复现的demo
from loading_more_list.
我整体demo非常大外部是pageView嵌套NestedScrollView
from loading_more_list.
然后我点外部tab controller切换pageview的时候, 会闪退
from loading_more_list.
我进行多次尝试, 发现就是这个loadData网络请求之后如果调用list内部方法就会闪退, xcode检测到是内存异常, 使用了被释放的内存
from loading_more_list.
最好是提供能运行,能复现的demo。 没有这么多时间云debug
from loading_more_list.
Related Issues (20)
- 赋值出现类型不匹配 HOT 3
- ListConfig中设置controller会导致划动异常 HOT 1
- 按照CustomScrollView的示例代码 运行抛出异常 HOT 1
- The argument type 'FFRouteSettings Function({Map<String, dynamic>? arguments, required String name})' can't be assigned to the parameter type 'FFRouteSettings Function({Map<String, dynamic>? arguments, required String name, Widget? notFoundWidget})'. HOT 2
- 关于命名不规范(IDEA警告) HOT 1
- APP刷新时异常 HOT 2
- Code error HOT 1
- LoadingMoreBase里的_array权限需要放开 HOT 1
- flutter热重载时 list刷新 HOT 2
- 'center.parent == this' error in low version flutter after rebuildCustomScrollView is removed
- Example with flutter_bloc HOT 1
- support bidirectional HOT 1
- 部分场景下无法正常使用,有复现demo HOT 2
- LoadingMoreCustomScrollView add center attribute
- Custom empty.jpeg picture HOT 2
- [Bug report] Looking up a deactivated widget's ancestor is unsafe. HOT 26
- [Bug report] 当GridViewDemo中开启reverse和closeToTrailing时,如果loadmore中的数据源过少,会触发断言。
- itemBuilder返回的index改变后,没法区分占位index HOT 12
- [Bug report] 建议去掉indicator_widget 中的backgroundColor HOT 1
- [Bug report] Using LoadingMoreList in the app result in a blank page with no logs HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from loading_more_list.