如果我只是简单地修改了ListView的数据而不滚动,那么一切都会正确显示:
https://gfycat.com/illustriousnastyconey
但是,如果我在更改数据之前滚动,则数据更改后一切看起来都破了:
https://gfycat.com/abandonedvelvetyaoudad
这是我的ListView XAML
<ListView ItemsSource="{Binding network.Predictions}" x:Name="ShowsList" IsGroupingEnabled="True" HasUnevenRows="True" ItemTapped="ShowsList_ItemTapped">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell Height="25">
<Grid BackgroundColor="#CC778899">
<Label Text="{Binding Category}" FontSize="Small" TextColor="White" VerticalOptions="Center" Margin="5,0,0,0"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid BackgroundColor="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label Text="{Binding Name}" FontSize="Medium" Margin="5"/>
<Label Grid.Column="1" Text="{Binding Status}" FontSize="Small" TextColor="{Binding StatusIndex, Converter={StaticResource StatusColor}}" Margin="5" VerticalOptions="Center/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
此外,在发生这种情况之后,如果我滚动以使混乱的元素离开屏幕,然后向后滚动,则这些元素看起来就很好。它确实似乎在正确分配空间,并且在滚动后它们正确显示,因此它不会错误地读取数据或类似的东西,只是显示不正确。
我有个主意,将listview的背景色更改为红色,以查看文本是否呈现为白色,但是不,那些丢失的元素是完全透明的。正确的元素都具有背景色,但是缺少的元素只是显示为红色。
答案 0 :(得分:1)
它似乎是listview的错误,此问题存在于3.6的初始版本中,并且已在3.6.0.344457中进行了修复,许多开发人员都遇到此问题,如果您有类似的问题,请查看:{{3 }} 修复它的最快,最简单的方法是将Xamarin.Forms版本回滚