Xamarin Forms:CollectionView 在 ios 中不工作

Xamarin Forms: CollectionView is not working in ios

我正在为水平列表视图使用 CollectionView。它在 android 中工作正常,但在 ios 中,项目显示在另一个之上。下面附上截图:

XAML

<CollectionView 
             HeightRequest="30"
             SelectionMode="Single"
             SelectionChanged="ItemTapped"
        ItemsSource="{Binding Items}"
             x:Name="collectionview"
             ItemsLayout="HorizontalList">
             <CollectionView.ItemTemplate>
                   <DataTemplate>
                          <StackLayout Margin="5">
                                  <Label
                                       TextColor="Black"
                                       FontSize="Large"
                                       HorizontalTextAlignment="Center"
                                       VerticalTextAlignment="Center"
                                       Text="{Binding title}"/>
                             </StackLayout>
                        </DataTemplate>
                 </CollectionView.ItemTemplate>
          </CollectionView>

Xaml.cs

public async void ItemTapped(object sender, SelectionChangedEventArgs e)
        {
            var selectedItem = (e.CurrentSelection.FirstOrDefault() as MyModel);
            if (selectedItem != null)
            {
                //Do action
            }
        }

在 iOS 上的 AppDelegate class 和 Android 上的 MainActivity class 中添加以下代码,然后再调用 Forms.Init:

Forms.SetFlags("CollectionView_Experimental");

我是否遗漏了 IOS 中的内容?

我建议您添加一个 LinearItemsLayout,这样您就可以控制这些项目的外观:

 <CollectionView.ItemsLayout>  
 <LinearItemsLayout ItemSpacing="5" Orientation="Horizontal" />
 </CollectionView.ItemsLayout>

如果您遇到任何问题,请告诉我!

这似乎是 Xamarin.Forms 的一个现有问题。作为解决方法,您可以将 Xamarin.Forms 的版本更新为 4.4 pre2 .

你可以查看 Xamarin.forms release notes .