首页 > 解决方案 > 为什么我在 Xamarin iOS 中的网格高度超过手机大小

问题描述

iOS 屏幕模拟器是 iPhone 12 Pro MAX

iOS 屏幕模拟器是 iPhone 12 Pro MAX

Android 屏幕模拟器是 Pixel 3a XL

Android 屏幕模拟器是 Pixel 3a XL

        <Grid>
            <StackLayout x:Name="DetailStack" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
                <Grid RowSpacing="0" ColumnSpacing="0" x:Name="DetailGrid">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="0.1*"/>
                        <RowDefinition Height="0.1*"/>
                        <RowDefinition Height="0.1*"/>
                        <RowDefinition Height="0.7*"/>
                    </Grid.RowDefinitions>
                    <Grid RowSpacing="0" ColumnSpacing="0" Grid.Row="0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="0.25*"/>
                            <ColumnDefinition Width="0.05*"/>
                            <ColumnDefinition Width="0.7*"/>
                        </Grid.ColumnDefinitions>
                        <Label Grid.Column="0" Text="" Style="{StaticResource StyledTitleLabel}" BackgroundColor="AliceBlue"/>
                        <Label Grid.Column="1" Text=" : " Style="{StaticResource StyledTitleLabel}"/>
                        <Label Grid.Column="2" Text="{Binding DcpTreeNode.Dcp.ValueType.Name}" Style="{StaticResource StyledContentLabel}" BackgroundColor="AntiqueWhite"/>
                    </Grid>
                    <Grid RowSpacing="0" ColumnSpacing="0" Grid.Row="1">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="0.25*"/>
                            <ColumnDefinition Width="0.05*"/>
                            <ColumnDefinition Width="0.7*"/>
                        </Grid.ColumnDefinitions>
                        <Label Grid.Column="0" Text="" Style="{StaticResource StyledTitleLabel}" BackgroundColor="Bisque"/>
                        <Label Grid.Column="1" Text=" : " Style="{StaticResource StyledTitleLabel}"/>
                        <Label Grid.Column="2" Text="{Binding DcpTreeNode.Dcp.Driver.Name}" Style="{StaticResource StyledContentLabel}" BackgroundColor="DarkMagenta"/>
                    </Grid>
                    <Grid RowSpacing="0" ColumnSpacing="0" Grid.Row="2">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="0.25*"/>
                            <ColumnDefinition Width="0.05*"/>
                            <ColumnDefinition Width="0.7*"/>
                        </Grid.ColumnDefinitions>
                        <Label Grid.Column="0" Text="" Style="{StaticResource StyledTitleLabel}" BackgroundColor="LawnGreen"/>
                        <Label Grid.Column="1" Text=" : " Style="{StaticResource StyledTitleLabel}"/>
                        <Label Grid.Column="2" Text="{Binding DcpTreeNode.Dcp.Comment}" Style="{StaticResource StyledContentLabel}" BackgroundColor="LightGreen"/>
                    </Grid>
                    <Grid RowSpacing="0" ColumnSpacing="0" Grid.Row="3">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="0.25*"/>
                            <ColumnDefinition Width="0.05*"/>
                            <ColumnDefinition Width="0.7*"/>
                        </Grid.ColumnDefinitions>
                        <Label Grid.Column="0" Text="" Style="{StaticResource StyledTitleLabel}" BackgroundColor="DeepPink"/>
                        <ListView Grid.Column="1" Grid.ColumnSpan="2" ItemsSource="{Binding EnumValueList, Source={x:Reference PageInstance}}" SelectionMode="None"/>
                    </Grid>
                </Grid>
            </StackLayout>
            <!--<ScrollView VerticalOptions="Center" HorizontalOptions="FillAndExpand" VerticalScrollBarVisibility="Never" HorizontalScrollBarVisibility="Never">
                
            </ScrollView>-->
        </Grid>

上图和代码是我的项目

我在我的 android 手机中进行调试,结果在 android 中很好,但在 iphone 中,网格超出了手机屏幕尺寸

我使用滚动视图检查什么问题

检查结果好难过

在 android 手机中,我的应用程序 ui 工作良好,但在 iphone 中,我的应用程序 ui 超出屏幕尺寸(已创建滚动)

为什么会发生这种情况?如何解决?

在此处输入图像描述

这是删除stacklayout

标签: xamlxamarinxamarin.formsxamarin.androidxamarin.ios

解决方案


如果不需要,请不要在 StackLayout 和 Grid 内使用Grid。它使错误很容易发生。请尝试删除 StackLayout。我认为您的问题是使用 StackLayout。除此之外,它可能基于您定义的样式。


推荐阅读