|
我为这个问题折磨了几天,今天终于有所发现:我的写法是首先 listView.open,其中的 data 给的是一个空数组,就是这样:data : [],然后注册 setRefreshHeader 回调:
listView.setRefreshHeader({
bgColor : "#f5f5f5",
loadingImg : "widget://image/listView/arrow.png"
}, function(ret, err) {
firstLoadList();
});
注意这里的 firstLoadList,写这个函数的目的是为了代码复用,接着调用 firstLoadList(),简单总结下,调用过程如下:在 apiready 中(1)首先调用 listView.open,其中的 data 是一个空数组,接下来(2)注册 setRefreshHeader 回调(3)调用 firstLoadList 请求并加载数据,firstLoadList 中获取到数据后调用 listView.reloadData 加载数据到列表中
上述代码逻辑,在 Android 中一切正常,但在 IOS 中,因为步骤(1)加载的是空数组,则步骤(2)注册的 setRefreshHeader 回调根本不会响应,从而造成了在 Android 中正常的 listView 在 IOS 中不显示数据的假象,似乎可以总结为一句话:在 IOS 中,如果 listView.open 方法中的 data 赋予的是空数组,则 setRefreshHeader 不会响应
上述是小弟折腾了几天的心得,不一定代表所有人的情况,拿出来分享,希望对别人有所帮助 |
|