You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Xamarin.Forms的FFImageLoading CachedImage中设置LoadingPlaceholder宽高?

解决FFImageLoading CachedImage中LoadingPlaceholder尺寸过大的问题

我来帮你搞定这个问题!FFImageLoading的CachedImage默认不会自动缩放LoadingPlaceholder指定的图片,所以你的GIF会直接按原尺寸显示,导致过大。这里有个靠谱的解决方案,用LoadingPlaceholderTemplate来自定义占位图的样式和尺寸:

直接修改你的XAML代码,通过模板来控制占位GIF的大小:

<ff:CachedImage Source="image.png" 
                Aspect="AspectFill" 
                WidthRequest="375" 
                HeightRequest="375">
    <!-- 自定义加载占位模板 -->
    <ff:CachedImage.LoadingPlaceholderTemplate>
        <DataTemplate>
            <!-- 用FFImageLoading的Image加载GIF保证动画正常,同时设置固定尺寸 -->
            <ff:CachedImage Source="Spinner64px.gif" 
                            WidthRequest="64" 
                            HeightRequest="64"
                            Aspect="AspectFit"
                            HorizontalOptions="Center"
                            VerticalOptions="Center"/>
        </DataTemplate>
    </ff:CachedImage.LoadingPlaceholderTemplate>
</ff:CachedImage>

为什么这个方法有效?

  • LoadingPlaceholder只是简单指定图片路径,它会默认继承父控件的尺寸或者按图片自身原始尺寸渲染,没法单独控制大小;
  • 而LoadingPlaceholderTemplate允许你完全自定义占位元素,你可以在模板里放置任意视图,这里我们用了一个小型的CachedImage来加载GIF,直接给它设置WidthRequest和HeightRequest为64px,同时设置HorizontalOptions和VerticalOptions为Center,让它在主图的中心显示,完美解决尺寸过大的问题。

如果你的GIF本身就是64px的,也可以给模板里的图片加上Aspect="AspectFit",确保它不会被拉伸变形。

内容的提问来源于stack exchange,提问作者Nanji Mange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:36:08