Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Listview Xamarin表单列表视图中的停止细胞循环_Listview_Xamarin_Xamarin.forms - Fatal编程技术网

Listview Xamarin表单列表视图中的停止细胞循环

Listview Xamarin表单列表视图中的停止细胞循环,listview,xamarin,xamarin.forms,Listview,Xamarin,Xamarin.forms,我在xamarin表单中有一个相对简单的应用程序,它有一个带有自定义单元格的ListView。在这些细胞中,有一个图像。我遇到的问题是这个。当我滚动ListView时,在加载新图像之前,我可以看到以前单元格中的图像 我已尝试将ListView的ListViewCachingStrategy设置为所有可能的值,但问题仍然存在 有没有办法阻止回收?我知道这是一个性能上的成功,但名单并没有那么多。当然,除非有更好的方法来停止这个图像问题,否则我还没有明确尝试过这个方法,但是如果您在ListView上附

我在xamarin表单中有一个相对简单的应用程序,它有一个带有自定义单元格的ListView。在这些细胞中,有一个图像。我遇到的问题是这个。当我滚动ListView时,在加载新图像之前,我可以看到以前单元格中的图像

我已尝试将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;
}

阅读此处的更多内容:

我可以尝试调整此内容以适合我的应用程序。我会再打给你的。你为什么不使用绑定呢?