Xamarin.forms 列出滚动出屏幕时移动或消失的项目
我有一个针对Android和IOS的Xamarin表单应用程序。当我在Android上打开一个较大的列表时,它在加载时看起来很好。然而,当我现在向下滚动并再次向上滚动某些条目时,图像会被移动或完全消失 之前: 之后: 该列表是使用以下XAML定义的:Xamarin.forms 列出滚动出屏幕时移动或消失的项目,xamarin.forms,xamarin.forms.labs,Xamarin.forms,Xamarin.forms.labs,我有一个针对Android和IOS的Xamarin表单应用程序。当我在Android上打开一个较大的列表时,它在加载时看起来很好。然而,当我现在向下滚动并再次向上滚动某些条目时,图像会被移动或完全消失 之前: 之后: 该列表是使用以下XAML定义的: <ListView x:Name="PaymentList" ItemsSource="{Binding DailyList}"
<ListView x:Name="PaymentList"
ItemsSource="{Binding DailyList}"
HasUnevenRows="True"
CachingStrategy="RecycleElementAndDataTemplate"
IsGroupingEnabled="True"
SeparatorVisibility="None">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<TextCell Text="{Binding Key}"
TextColor="{DynamicResource HeaderColor}" />
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Clicked="EditPayment" CommandParameter="{Binding .}"
Text="{Binding Resources[EditLabel]}" />
<MenuItem Clicked="DeletePayment" CommandParameter="{Binding .}"
Text="{Binding Resources[DeleteLabel]}"
IsDestructive="True" />
</ViewCell.ContextActions>
<controls:CardView Margin="{StaticResource SmallLeftRightBottomMargin}" Style="{StaticResource ListItemStyle}">
<StackLayout Spacing="0"
Margin="{StaticResource DefaultListItemsMargin}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70*" />
<ColumnDefinition Width="30*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0"
Text="{Binding Category.Name}"
Style="{StaticResource ListItemHeaderSmallStyle}" />
<Label Grid.Column="1"
HorizontalTextAlignment="End"
VerticalOptions="CenterAndExpand"
Style="{StaticResource SmallTextStyle}"
Text="{Binding ., Converter={StaticResource PaymentAmountConverter}}" />
</Grid>
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70*" />
<ColumnDefinition Width="30*" />
</Grid.ColumnDefinitions>
<Label Grid.Column="0"
Text="{Binding Note}"
Style="{StaticResource DeemphasizedSmallLabelStyle}" />
<StackLayout Grid.Column="1" Orientation="Horizontal" HorizontalOptions="EndAndExpand">
<Image HeightRequest="15"
WidthRequest="15"
IsVisible="{Binding IsTransfer}" >
<Image.Source>
<FontImageSource
Glyph="{StaticResource Transfer}"
FontFamily="{DynamicResource MaterialFontFamily}"
Color="{DynamicResource PrimaryFontColor}" />
</Image.Source>
</Image>
<Image HeightRequest="15"
WidthRequest="15"
IsVisible="{Binding IsRecurring}" >
<Image.Source>
<FontImageSource
Glyph="{StaticResource Recurring}"
FontFamily="{DynamicResource MaterialFontFamily}"
Color="{DynamicResource PrimaryFontColor}" />
</Image.Source>
</Image>
<Image HeightRequest="15"
WidthRequest="15"
IsVisible="{Binding IsCleared}">
<Image.Source>
<FontImageSource
Glyph="{StaticResource Cleared}"
FontFamily="{DynamicResource MaterialFontFamily}"
Color="{DynamicResource PrimaryFontColor}" />
</Image.Source>
</Image>
</StackLayout>
</Grid>
</StackLayout>
</controls:CardView>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我还尝试了另一种缓存模式。但是使用retain元素,滚动时的元素只是空的
这份清单大约有130个项目
我怎样才能解决这个问题 我建议您可以使用FFImageLoading正确渲染图像,我想FFImageLoading将解决您的问题 通过NuGet软件包安装Xamarin.FFImageLoading.Forms 以下是有关使用FFimageLoading的详细信息
我建议您可以使用FFImageLoading正确渲染图像,我想FFImageLoading将解决您的问题 通过NuGet软件包安装Xamarin.FFImageLoading.Forms 以下是有关使用FFimageLoading的详细信息
我注意到,当我将
hassunlotrows=“True”
更改为False(默认值)并设置固定行高时,我可以使用CachingStrategy=“RetainElement”
而不必使用emtpy元素。这样,问题似乎不再出现。我注意到,当我将hassunterrows=“True”
更改为False(默认值)并设置固定行高时,我可以使用CachingStrategy=“RetainElement”
而不使用emtpy元素。这样,问题似乎不再出现。谢谢您的回答!我试过了。不幸的是,这种情况更糟^^谢谢你的回答!我试过了。不幸的是,这种情况更糟^^我尝试但不起作用用CachingStrategy=“RecycleElement”替换CachingStrategy=“RetainElement”时,它起作用。我尝试但不起作用用CachingStrategy=“RecycleElement”替换CachingStrategy=“RetainElement”时,它起作用