我正在开发类似Uber应用程序的东西(Pin在屏幕上居中,地图只能移动,引脚始终位于中心)。
我创建了一个Grid,其中包含一个Image和一个Xamarin.Forms.Map,我将图像水平和垂直设置为居中,并将地图水平和垂直填充为可用空间。这是不对的,因为针脚的底部不适合地图的确切中心。 如何画一点上部,然后是屏幕的垂直中心?看截图:
确实需要充满活力。
<Grid>
<maps:Map x:Name="DisplayMap" IsShowingUser="true" MapType="Street" HorizontalOptions="Fill" VerticalOptions="Fill"/>
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
<!-- SOME OTHER CONTROLS -->
<Image Source="pin.png" WidthRequest="50" HeightRequest="50"/>
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
</Grid>
答案 0 :(得分:0)
如果你将“其他一些控件”设置到stackLayout中,那么stackLayout将会居中,但不会再显示你的图像了...
尝试这样的事情(从stackLayout中排除图像):
my app configure to be build with webpack instead of ng-cli
你的'pin'形象:
现在应该可以工作......
答案 1 :(得分:0)
<Grid>
<Grid
HorizontalOptions="Fill"
VerticalOptions="Fill">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Image
Grid.Row="0"
Source="pin.png"
WidthRequest="50"
HeightRequest="50"
VerticalOptions="End"
HorizontalOptions="Center"/>
</Grid>
<maps:Map
x:Name="DisplayMap"
IsShowingUser="true"
MapType="Street"
HorizontalOptions="Fill"
VerticalOptions="Fill"/>
</Grid>
这会将整个屏幕水平分成两部分,图像将与第一行的底部对齐。