【发布时间】:2018-05-23 08:21:35
【问题描述】:
我正在使用 Xamarin Forms 和 Xamarin Android。
我有这段代码用于读取一些文件(存储在 Android 手机中)
public ImageSource Photo { get; set; }
public void LoadPhoto()
{
var t = Android.Net.Uri.Parse("URI_OF_THE_PHOTO");
var otherStream = Android.App.Application.Context.ContentResolver.OpenInputStream(t);
Photo = Xamarin.Forms.ImageSource.FromStream(() => otherStream);
}
然后,在我的 XAML 页面中,在 ListView 的 ViewCell 中,我有这个图像控件:
<Image Source="{Binding Photo}"></Image>
一切正常,图像(大约 50 张)正确加载并显示在 ListView 中。
但是当我滚动 ListView 并且图像离开屏幕时,当我向后滚动它们时,它们是空的!图片突然消失了……消失了!!!
我发现了几个与此类似的 StackOverflow 案例,但我无法让它与这些解决方案一起使用,它们似乎不适用于我的案例。
请帮忙,我被这个问题困住了!
【问题讨论】:
-
尝试查看
CachingStrategy的ListView -
不幸的是,我已经尝试设置它,以及它所有可能的值( RecycleElement / RetainElement / RecycleElementAndDataTemplate ),但它根本没有解决问题:-(
-
你可以尝试使用FFImageLoading插件。这可以帮助您缓存图像
-
您是否也尝试将图像的
CachingEnabled属性设置为true? -
您可以阅读this,所以您从uri 获取图像?并且你想使用 FFImageLoading 从 uri 加载图像?
标签: c# android xamarin xamarin.forms xamarin.android