一个简单的.Net MAUI应用程序的MainPage包含一个包含4行的网格,所有行都具有相同的高度(*)。它们包括:标签,CollectionView,按钮,标签在Windows和Android上,页面显示正确。但是在iPhone/iPad上,CollectionView的显示率太高了。它覆盖了下面的按钮和标签(或者将它们推到屏幕之外)
当使用 Grid.Row=1 的修复值时,不会发生问题
Visual Studio 2022,版本17.6.1 .Net 7.0
复制:
1.创建.NET MAUI应用程序
1.替换MainPage中的XAML代码,CollectionView的背景为浅蓝色
1.在Android模拟器上运行
1.在iOS模拟器上运行
<Grid BackgroundColor="LightGray" RowDefinitions="*,*,*,*">
<Label Margin="10" FontSize="30" Text="Header" />
<CollectionView Grid.Row="1" Margin="10" BackgroundColor="LightBlue">
</CollectionView>
<Button
Grid.Row="2" Margin="10" BackgroundColor="Grey"
FontSize="40" Text="Button" />
<Label
Grid.Row="3" Margin="10" BackgroundColor="Coral"
FontSize="40" Text="Footer" />
</Grid>
1条答案
按热度按时间oxf4rvwz1#
这是GitHub上报告的已知问题-Make CollectionView on iOS measure to content size #14951和[iOS] Application stucks on iOS with combination of ScrollView, StackLayout, Editor and CollectionView #14955,请在GitHub上跟踪进度。
如第一个合并线程所述,要修复此问题,PG团队需要修改iOS上的
CollectionView
,以使用其ContentSize
作为GetDesiredSize
的值;这迫使X1 M3 N1 X根据其内容调整大小,而不是试图填充整个屏幕。所以我们可能需要下一个版本的.net来修复它。您也可以尝试使用the .NET Upgrade Assistant升级到.NET 8作为替代解决方案。有关更多信息,请参阅Announcing a new version of the .NET Upgrade Assistant with support for .NET MAUI。