Xamarin跨平台项目 - 屏幕尺寸值收到错误

时间:2018-01-09 09:13:04

标签: android ios xamarin height width

我的地图应用总是比屏幕尺寸大。我尝试了两个选项,第一个使用该代码:

public partial class MapPage : ContentPage
{
        map = new Map
        {
            IsShowingUser = true,
            HeightRequest = Height,
            WidthRequest = Width,
            VerticalOptions = LayoutOptions.FillAndExpand
        };
        ...
        ...
        ...
        var stack = new StackLayout
        {
            Spacing = 0
        };
        stack.Children.Add(map);
        stack.Children.Add(slider);
        stack.Children.Add(segments);
        Content = stack;
}

我有那个屏幕,如你所见,按钮比屏幕大:

enter image description here

即使按钮文本较小或不相同,它也总是具有相同的大小。

第二个选项是:

public partial class MapPage : ContentPage
{
    public static int ScreenHeight { get; set; }
    public static int ScreenWidth { get; set; }

    Plugin.Geolocator.Abstractions.Position position;

    Map map;
    public MapPage()
    {
        map = new Map
        {
            IsShowingUser = true,
            HeightRequest = ScreenHeight,
            WidthRequest = ScreenWidth,
            VerticalOptions = LayoutOptions.FillAndExpand
        };

        ...
        ...
        ...
        var stack = new StackLayout
        {
            Spacing = 0
        };
        stack.Children.Add(map);
        stack.Children.Add(slider);
        stack.Children.Add(segments);
        Content = stack;
}

在Android和iOS项目中,我有代码:

机器人:

MapPage.ScreenHeight = (int)(Resources.DisplayMetrics.HeightPixels / Resources.DisplayMetrics.Density);     
MapPage.ScreenWidth = (int)(Resources.DisplayMetrics.WidthPixels / Resources.DisplayMetrics.Density);

的iOS:

MapPage.ScreenHeight = (int)UIScreen.MainScreen.Bounds.Height;
MapPage.ScreenWidth = (int)UIScreen.MainScreen.Bounds.Width;

我看到那个屏幕:

enter image description here

如您所见,使用第二个选项,我无法看到按钮和滑块。

我尝试更改VerticalOptions,或删除它,并给出相同的结果。此外,我尝试将高度和宽度请求添加到"堆栈",仅用于尝试新事物,它给我与以前相同的结果。

任何人都可以帮助我吗?谢谢!

0 个答案:

没有答案