如何在 Xamarin 表单的另一个视图中重用缓存的图像
Posted
技术标签:
【中文标题】如何在 Xamarin 表单的另一个视图中重用缓存的图像【英文标题】:How to re-use cached images in another view in Xamarin forms 【发布时间】:2021-11-27 21:08:02 【问题描述】:我正在使用集合视图(缩略图)创建一个图片库应用程序。我正在使用 FFloading 从 URL 获取图像。当我单击图像时,我想使用共享事务库导航到另一个页面以全屏查看我的图像。但是,我注意到当我导航到全屏页面时,图像会重新下载。有没有办法可以实现这种无缝过渡?想想Instagram。谢谢
来自:页面
Aspect="AspectFill"
HeightRequest="150"
RetryCount="5"
CacheDuration="30"
RetryDelay="450"
DownsampleToViewSize="True"
sharedTransitions:Transition.Name="PlaceImage"
sharedTransitions:Transition.Group="Binding Id"
Source="Binding PhotoPath,Converter=StaticResource Key=path"/>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer
Command="Binding Source=x:Reference browse,Path=BindingContext.NavigateToDetailsCommand" CommandParameter="Binding ."/>
</StackLayout.GestureRecognizers>
To: <ffimageloading:CachedImage
Aspect="AspectFill"
DownsampleToViewSize="True"
RetryCount="5"
FadeAnimationEnabled="True"
CacheDuration="30"
Source="Binding PhotoPath,Converter=StaticResource Key=path"
RetryDelay="450"
sharedTransitions:Transition.Name="PlaceImage"/>```
【问题讨论】:
我先禁用DownsampleToViewSize
我无法在我这边重现这个问题。但是你为什么要使用 Converter
来代替 Source
呢?如果方便的话,可以发个基本的demo到github或者onedriver,方便我们测试一下吗?
如果我使用本地图像效果很好,但是我从 URI 获取的图像会有一点延迟。我使用转换器的原因是我不会一直在所有页面中输入完整的 URL
but images I'm getting from a URI, there's a slight delay.
我从一个 URL 获得了一张图片,但我无法重现这个问题。是的,第一次加载图像时有延迟,但导航到另一个页面时没有延迟。
在下一页,您使用的是 URL 吗?是否可以分享你所拥有的。我真的很挣扎
【参考方案1】:
找到了解决办法,我需要在第二页设置一个hightrequest
【讨论】:
以上是关于如何在 Xamarin 表单的另一个视图中重用缓存的图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在 xamarin 表单的集合视图中的最后一项旁边添加图像/按钮?
如何在 Xamarin 表单中的视图模型之间最好地传递信息 - Prism [关闭]