.NET MAUI CollectionView inside a Grid在iPhone/iPad上未正确显示

toe95027  于 2023-05-30  发布在  .NET
关注(0)|答案(1)|浏览(156)

一个简单的.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>

oxf4rvwz

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

相关问题