Xamarin表单(Xaml)ListView不显示图像

时间:2019-06-11 06:55:26

标签: xaml listview xamarin.forms

我的XAML如下:

<?xml version="1.0" encoding="utf-8" ?>
    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:d="http://xamarin.com/schemas/2014/forms/design"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         x:Class="MyApp.Mobile.MyPage">
<ContentPage.Content>
    <StackLayout>
        <Image Source="http://MyUrl/MyImage.png" />  <!-- WORKS -->
        <ListView ItemsSource="{Binding Cells}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Vertical">
                            <Label Text="{Binding RowName}" />
                            <Label Text="{Binding ColumnName}" />
                            <Image Source="http://MyUrl/MyImage.png" /> <!-- DOES NOT WORK-->
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage.Content>

Xamarin Forms(在Android上测试) 第一张图像显示良好。 ListView中的图像完全不显示。 最终,我将像标签一样使用绑定(可以使用),但是在诊断问题时,已经对URL进行了硬编码。

有人知道为什么图像没有显示在ListView中吗?

2 个答案:

答案 0 :(得分:2)

尝试如下,

<ListView 
            HasUnevenRows="True"
            ItemsSource="{Binding Cells}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Orientation="Vertical">
                            <Label Text="{Binding RowName}" />
                            <Label Text="{Binding ColumnName}" />
                            <Image Source="http://xamarin.com/content/images/pages/index/hero.jpg" />
                            <!-- DOES NOT WORK-->
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

它在我的工作端被检查了。

快乐编码。

Kishore Kumar Vangala。

答案 1 :(得分:0)

我强烈建议在处理列表视图中的图像时使用 FFImageLoading 。 性能增强和优化的内存消耗巨大! Github | Nuget

然后在列表视图中,为了避免单元格大小问题,最好为HeightRequest指定WidthRequestImage,然后使用适合您的Aspect需要(AspectFitAspectFill等)

现在经过测试,一切正常,没有问题。