【发布时间】:2020-03-24 22:57:16
【问题描述】:
我将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
}
}
在调用 Forms.Init 之前,在 iOS 上的 AppDelegate 类和 Android 上的 MainActivity 类中添加以下代码:
Forms.SetFlags("CollectionView_Experimental");
我在 IOS 中遗漏了什么吗?
【问题讨论】:
-
您的代码在我这边运行良好。 CollectionView 的父视图是什么?
-
@LucasZhang-MSFT Stacklayout
-
@LucasZhang-MSFT 在驱动器上上传了我的 XAML 文件。驱动链接:drive.google.com/open?id=1eTRPwq1jEDZem0xyjOmPiN3Fd1g5dUU6你能查一下吗?
-
您的示例看起来很复杂(并且包含一些第三个库控件)。您可以创建一个包含问题的示例。您在问题上发布的代码工作正常,所以我认为可能是其他代码引起的问题。
-
@LucasZhang-MSFT 我会给你一个样本。
标签: xamarin.forms collectionview