Xamarin.forms UICollectionViewFlowLayout.PrepareLayout()时,Xamarin iOS应用程序在监视器中挂起
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
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中提交它。然后我们可以稍后再跟进。如果回复有帮助,请不要忘记接受它作为答案(单击✔ 在这个答案的左上角)投票,它将帮助其他有类似问题的人。