Poo*_*wat 5 layout xaml xamarin xamarin.forms
在Xamarin.form Xaml中:当我给AbsoulteLayout layoutBounds(.5,.5,.5,.5)时,它居中出现,但不适用于ios ...,如果我使用(.75,.75 ,. 5,.5)Xamarin形式的Xaml页中的ios中心不是android系统.....如何为ios和android具有相同的layoutBounds
给定示例:
<AbsoluteLayout BackgroundColor="#99000000"
HorizontalOptions="FillAndExpand"
IsVisible="{Binding xyz}"
VerticalOptions="FillAndExpand">
<AbsoluteLayout x:Name="xyz"
AbsoluteLayout.LayoutBounds="0.5, 0.5, 0.5, 0.5"
AbsoluteLayout.LayoutFlags="All"
BackgroundColor="Transparent"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand" />
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)
感谢您的答复。我已经解决了绝对布局中与中心对齐有关的问题,希望这对您有所帮助
<AbsoluteLayout Padding="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" IsVisible="{Binding ShowPopup}">
<BoxView Color="#99000000" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" />
<StackLayout x:Name="Popup" Padding="6" Orientation="Horizontal" BackgroundColor="Transparent" AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1" AbsoluteLayout.LayoutFlags="PositionProportional">
</StackLayout>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)
您可以使用OnPlatform在不同平台上具有不同的值。
例如:
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness">
<OnPlatform.iOS>
0, 20, 0, 0
</OnPlatform.iOS>
<OnPlatform.Android>
0, 0, 0, 0
</OnPlatform.Android>
<OnPlatform.WinPhone>
0, 0, 0, 0
</OnPlatform.WinPhone>
</OnPlatform>
</ContentPage.Padding>
Run Code Online (Sandbox Code Playgroud)
修改您的代码(未经测试):
<AbsoluteLayout BackgroundColor="#99000000"
HorizontalOptions="FillAndExpand"
IsVisible="{Binding xyz}"
VerticalOptions="FillAndExpand">
<AbsoluteLayout x:Name="xyz"
AbsoluteLayout.LayoutFlags="All"
BackgroundColor="Transparent"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand" >
<AbsoluteLayout.LayoutBounds>
<OnPlatform x:TypeArguments="Rectangle">
<OnPlatform.iOS>
0.75, 0.75, 0.5, 0.5
</OnPlatform.iOS>
<OnPlatform.Android>
0.5, 0.5, 0.5, 0.5
</OnPlatform.Android>
<OnPlatform.WinPhone>
0, 0, 0, 0
</OnPlatform.WinPhone>
</OnPlatform>
</AbsoluteLayout.LayoutBounds>
</AbsoluteLayout>
</AbsoluteLayout>
Run Code Online (Sandbox Code Playgroud)