Listview Xamarin表单列表视图中的停止细胞循环
我在xamarin表单中有一个相对简单的应用程序,它有一个带有自定义单元格的ListView。在这些细胞中,有一个图像。我遇到的问题是这个。当我滚动ListView时,在加载新图像之前,我可以看到以前单元格中的图像 我已尝试将ListView的Listview Xamarin表单列表视图中的停止细胞循环,listview,xamarin,xamarin.forms,Listview,Xamarin,Xamarin.forms,我在xamarin表单中有一个相对简单的应用程序,它有一个带有自定义单元格的ListView。在这些细胞中,有一个图像。我遇到的问题是这个。当我滚动ListView时,在加载新图像之前,我可以看到以前单元格中的图像 我已尝试将ListView的ListViewCachingStrategy设置为所有可能的值,但问题仍然存在 有没有办法阻止回收?我知道这是一个性能上的成功,但名单并没有那么多。当然,除非有更好的方法来停止这个图像问题,否则我还没有明确尝试过这个方法,但是如果您在ListView上附
ListViewCachingStrategy
设置为所有可能的值,但问题仍然存在
有没有办法阻止回收?我知道这是一个性能上的成功,但名单并没有那么多。当然,除非有更好的方法来停止这个图像问题,否则我还没有明确尝试过这个方法,但是如果您在ListView上附加ItemEverging事件 然后获取e.Item并清除图像,这样它就可以用空白的内容更新单元格中的图像
然后,当它再次返回视图时,在加载新内容之前,它应该是空的。我们针对这个问题所做的是在用户滚动时将绑定图像设置为空值,这将强制图像再次渲染,不是一个好的解决方案,但它可以工作。您可以使用绑定替代
OnBindingContextChanged
ViewCell的方法。诸如此类:
protected override void OnBindingContextChanged()
{
image.Source = null;
base.OnBindingContextChanged();
var item = BindingContext as YourItemType;
if (item == null)
return;
image.Source = item.YourImageSource;
}
阅读此处的更多内容:我可以尝试调整此内容以适合我的应用程序。我会再打给你的。你为什么不使用绑定呢?