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 .
我正在为水平列表视图使用 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 .