为什么页面内容从屏幕开始然后向下调整?

问题描述

我只有Xamarin iOS项目遇到此问题。 Android版本可以正常工作。

我有一个通过PushAsync推送的标准ContentPage。当页面加载时,内容从屏幕上加载,然后(似乎)绑定完成后将页面向下移动。我已连接了一个屏幕,该屏幕显示正在加载的屏幕,并在其中进行了重新调整。 Content off the screen

After binding

XAML文件

<ContentPage.Content>
    <AbsoluteLayout>
        <Frame Padding="10"
               Margin="20,20,20"
               BackgroundColor="AliceBlue"
               AbsoluteLayout.LayoutBounds="0,1,1"
               AbsoluteLayout.LayoutFlags="SizeProportional">

            <StackLayout Margin="10">
                <Label Text="{Binding OutreachTitle}"
                       FontSize="Title"
                       TextColor="{StaticResource PrimaryTextColor}"
                       HorizontalOptions="Center" />
                <controls:HorizontalRuleControl RuleColor="{StaticResource SecondaryColor}" />
                <Label Text="{Binding OutreachText}"
                       Margin="0,10,0"
                       TextColor="{StaticResource PrimaryTextColor}"
                       VerticalOptions="End"/>
            </StackLayout>
        </Frame>
    </AbsoluteLayout>
</ContentPage.Content>

解决方法

我没有在自己这边重现问题。虽然我建议您使用StackLayout而不是AbsoluteLayout。

问题可能是由于ContentPage中View的大小调整所致,当您设置SizeProportional的{​​{1}}时,大小将随视图的更改而变化,这将导致内容加载屏幕外:

AbsoluteLayout