如何解决当UICollectionViewFlowLayout.PrepareLayout时,Xamarin iOS应用程序在监视器中挂起
Xamarin iOS应用程序在CollectionView.IsVisible = false
启动时会无限暂停。
在Android上有效。但是,在iOS上,设置CollectionView.IsVisible = false
导致应用程序冻结。
<StackLayout
Margin="0,20,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">
<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 设置为Visiable
。
例如,从 Xaml 中删除IsVisible="False"
,然后通过OnAppearing
方法在 ContentPage.cs 中进行设置:
protected override void OnAppearing()
{
base.OnAppearing();
Collection.IsVisible = false;
}
效果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。