java - Xamarin.Forms 预览屏幕不工作
问题描述
在我的 Xamarin.Forms 项目中,我编辑 .xaml 文件后,预览屏幕停止响应。它给出了 java.lang.NullPointerException 错误,但在 Visual Studio 2019 的错误部分中没有显示任何错误。我的最终 .xaml 文件如下:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:map="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps"
mc:Ignorable="d"
x:Class="x.MainPage">
<Grid HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Grid.RowDefinitions>
<RowDefinition Height="2.1*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="1" HeightRequest="160" ColumnSpacing="0" Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.1*"/>
</Grid.ColumnDefinitions>
<Grid BackgroundColor="White">
<StackLayout VerticalOptions="FillAndExpand" Orientation="Vertical">
<Label Text="x" TextColor="DimGray" FontSize="35" Margin="5"/>
<SearchBar Text="x" VerticalTextAlignment="Center" VerticalOptions="Fill" HorizontalTextAlignment="Start" IsEnabled="False" IsReadOnly="True" HorizontalOptions="Fill" Margin="5"/>
<Label Text="x" FontSize="Large" Margin="5" VerticalOptions="Center" HorizontalOptions="Center"/>
<Grid Grid.Row="1" HeightRequest="160" ColumnSpacing="0" Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Source="https://cdn1.iconfinder.com/data/icons/general-9/500/add-512.png" VerticalOptions="Center" HorizontalOptions="Center" Scale="0.5" Grid.Column="0" />
<Image Source="https://cdn1.iconfinder.com/data/icons/general-9/500/add-512.png" VerticalOptions="Center" HorizontalOptions="Center" Scale="0.5" Grid.Column="1" />
<Image Source="https://cdn1.iconfinder.com/data/icons/general-9/500/add-512.png" VerticalOptions="Center" HorizontalOptions="Center" Scale="0.5" Grid.Column="2" />
<Image Source="https://cdn1.iconfinder.com/data/icons/general-9/500/add-512.png" VerticalOptions="Center" HorizontalOptions="Center" Scale="0.5" Grid.Column="3" />
<Image Source="https://cdn1.iconfinder.com/data/icons/general-9/500/add-512.png" VerticalOptions="Center" HorizontalOptions="Center" Scale="0.5" Grid.Column="4" />
</Grid>
<Label Text="x" FontSize="Caption" Margin="5" TextColor="#000AFF" VerticalTextAlignment="Center" VerticalOptions="Center" HorizontalOptions="Center" HorizontalTextAlignment="Center"/>
</StackLayout>
</Grid>
</Grid>
<Grid>
<map:Map x:Name="Map" MapType="Street" HasZoomEnabled="True"/>
</Grid>
</Grid>
</ContentPage>
解决方案
欢迎来到 SO!
检查代码后,有一个属性SearchBar
会导致这个错误。
修改IsEnabled="False"
为IsEnabled="True"
,或者如果不想SearchBar
显示可以设置IsVisible="False"
。
效果如下:
此外,您在第一个 Grid 中只定义了一行,但使用设置了第二个:
<Grid Grid.Row="1" HeightRequest="160" ColumnSpacing="0" Margin="0">
如果改为:
<Grid Grid.Row="0" HeightRequest="160" ColumnSpacing="0" Margin="0">
预览屏幕将显示如下:
同样的错误设置在第四个Grid
,你可以检查一下。
推荐阅读
- security - 链接到非常旧版本的 glibc 会引入安全漏洞吗?
- javascript - 在浏览器或 Node.js 中的 JavaScript 中生成模块导入类
- jquery - 如何在选中复选框时禁用文本框并在未选中复选框时启用它们
- mysql - 如果我在 mysql 上无法访问 root,有什么方法可以获取我的 WP 数据库?
- mysql - 查找最接近指定日期时间的记录
- python - 如何在每个单独的 matshow 子图上显示颜色条
- javascript - 为什么明确定义时会得到未定义的“toUpperCase”?
- azure - 链接服务是否支持 Azure 数据工厂中的动态 json?
- unicode - CJK 字符元素的代码点重复?
- unity3d - 将 Intel-Media SDK 与 Unity 集成