关于 android:Volley – NetworkImageView 有时不显示错误图像?
Volley - NetworkImageView sometimes doesn't show the error image?
所以我决定试用 Google IO 2013 上显示的新 Volley 库。
我已经尝试过使用
它运行良好并显示图像,但如果我让它下载图像,然后在下载过程中关闭 WiFi,它不会显示错误,就好像一切仍在加载一样。不仅如此,如果我恢复连接,它不会恢复加载。
为什么会发生,我该如何解决?也许它实际上是一个错误?
这是我的示例代码,如果有人想试试的话(
public class MainActivity extends Activity {
private static final int COLUMNS_COUNT = 4; private RequestQueue _requestQueue; private ImageLoader _imageLoader; @Override _requestQueue=Volley.newRequestQueue(this); final GridView gridView = new GridView(this); gridView.setAdapter(new BaseAdapter() { if (rootView == null) { final String url = getItem(position); @Override @Override @Override setContentView(gridView); @Override |
附言如果你想看
相关讨论
- 查看 Logcat,当您关闭 Wifi 时,Volley 是否有任何错误/调试消息?
- 实际上我还没有检查过。 volley 是否有特殊的日志标签可供查找?
- 是的,正如您可能猜到的那样,它是"Volley" 🙂
我认为问题在于凌空无法帮助您重新加载图像。
快速检查表明 NetworkImageView 仅在调用 onLayout 方法时加载数据,并且方法 loadImageIfNecessary 将在必要时将网络请求排队。
当没有 Internet 连接时,将调用错误回调,并且一旦 Internet 自身连接就没有进一步的操作。
但是,由于列表中有 NetworkImage,因此当您滚动列表时,我想您将重用单元格视图并再次调用 setImageURL。如果 Internet 连接可用,图像将自动加载。或者,一旦 Internet 连接建立,您可以刷新列表视图,以便自动加载图像。
相关讨论
- 那么这是一个错误,对吗?如果是这样,我应该在代码中做什么来修复它?我提供的最新链接是否可以修改?
- 未经测试,但我认为您应该自己监听网络变化,并在用户连接后使 ListView 无效。
- @zhaocong 当我滚动列表视图并返回时,一些图像丢失,这些图像在加载时显示。为什么会这样??
- @Roon13 恐怕我不明白你的问题。通常,当您向后滚动时,缓存的图像应该立即出现,除非它们根本没有缓存。
- 没关系,我解决了我的问题。感谢您的时间。