Xamarin.forms UICollectionViewFlowLayout.PrepareLayout()时,Xamarin iOS应用程序在监视器中挂起

Xamarin.forms UICollectionViewFlowLayout.PrepareLayout()时,Xamarin iOS应用程序在监视器中挂起,xamarin.forms,xamarin.ios,uicollectionview,Xamarin.forms,Xamarin.ios,Uicollectionview,Xamarin iOS应用程序在启动时CollectionView.IsVisible=false时无限挂起 在安卓系统上,它是有效的。但是,在iOS上,设置CollectionView.IsVisible=false会导致应用程序冻结 <StackLayout Margin="0,20,0,0"> <Button HorizontalOptions="CenterAndExpand

Xamarin iOS应用程序在启动时
CollectionView.IsVisible=false时无限挂起

在安卓系统上,它是有效的。但是,在iOS上,设置
CollectionView.IsVisible=false会导致应用程序冻结

    <StackLayout
        Margin="0,20,0,0">

        <Button
            HorizontalOptions="CenterAndExpand"
            WidthRequest="100"
            Clicked="Button_Clicked"
            Text="Click Me"/>

        <CollectionView
            x:Name="Collection"
            VerticalOptions="FillAndExpand"
            ItemsSource="{Binding Items}"
            SelectionMode="Single"
            IsVisible="False">

            <CollectionView.ItemsLayout>
                <GridItemsLayout
                    Orientation="Vertical"
                    Span="4"/>
            </CollectionView.ItemsLayout>
                                    
            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <StackLayout
                        Margin="10,10,10,10">
                        <Image
                            WidthRequest="50"
                            HeightRequest="50"
                            Source="{local:ImageResource CollectionView.Image.png}"/>
                        <Label
                            Text="{Binding Title}"
                            HorizontalTextAlignment="Center"
                            VerticalTextAlignment="Center" />
                    </StackLayout>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>
    </StackLayout>


这里是。

有一个解决办法解决iOS的问题,您可以在布局初始化后设置CollectionView的
可见

例如,从Xaml中删除
IsVisible=“False”
,然后在
OnAppearing
方法中的ContentPage.cs中设置它:

protected override void OnAppearing()
{
    base.OnAppearing();
    Collection.IsVisible = false;
}
其效果是:


这是Xamarin中的一个bug吗?如果这是一个bug,我会在Xamarin.Forms项目上提出问题。@ibocon我不确定,但至少应该是一个功能请求。您可以在Github中提交它。然后我们可以稍后再跟进。如果回复有帮助,请不要忘记接受它作为答案(单击✔ 在这个答案的左上角)投票,它将帮助其他有类似问题的人。