xaml - 为什么我在 Xamarin iOS 中的网格高度超过手机大小
问题描述
iOS 屏幕模拟器是 iPhone 12 Pro MAX
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
解决方案
如果不需要,请不要在 StackLayout 和 Grid 内使用Grid。它使错误很容易发生。请尝试删除 StackLayout。我认为您的问题是使用 StackLayout。除此之外,它可能基于您定义的样式。
推荐阅读
- javascript - 为什么内置的 confirm() 对话框很少使用?
- android - Scheduled JobService 仅在我打开我的应用程序时运行
- node.js - Node Js 复杂设计原则(Promise、async/await)
- google-cloud-speech - Google 语音转文本 API 密钥无效
- google-oauth - 向 G-Suite 、服务帐户的 OAuth 或服务器端 Web 应用程序的 OAuth 进行身份验证的最佳方法是什么
- sql-server - 升级 SQL Server 版本后出现问题,现在 services.msc 中有两台服务器
- javascript - 如何修复 Ajax 调用“参数字典包含一个空条目......”
- jquery - 同一日期但不同月份的月差
- c# - LINQ 执行流程(作业)
- assembly - MOVMSKB 操作有什么用?