如何在Xamarin.forms的scrollview(垂直)中添加两个完整大小的页面?

时间:2016-06-25 01:07:17

标签: xamarin xamarin.forms

我正在使用Xamarin.forms进行应用程序。 我正在做的事情真的很难。到目前为止无法弄清楚。

我想在scrollview(垂直)中添加两个视图(或页面),每个视图的大小与屏幕大小相等。因此,如果我向下滚动,第二个视图将显示,第一个视图将被隐藏。

如何使用xaml制作它?

我尝试了stacklayout,grid,relative,absolute。 什么都行不通。 (我相信有一些方法可以做到这一点)

感谢。

1 个答案:

答案 0 :(得分:2)

我用于此的解决方案是,在StackLayout内创建一个垂直方向的ScrollView。在里面我有两个StackLayout

<ScrollView>
    <StackLayout Orientation="Vertical" Spacing="0">
        <StackLayout x:Name="FirstStack" BackgroundColor="Red">
        </StackLayout>
        <StackLayout x:Name="SecondStack" BackgroundColor="Blue">
        </StackLayout>
    </StackLayout>
</ScrollView>

在此之后,我以编程方式为每个页面设置了Height

要获取屏幕Height,我采用了更简单的方式(仅测试它),但您应该在better way中进行。

FinishedLaunching内的iOS上:

App.ScreenHeight = (int)UIScreen.MainScreen.Bounds.Height;

MainActivity内的Android上(需要调整+ 0.07f ):

App.ScreenHeight = (int)(Resources.DisplayMetrics.HeightPixels / (Resources.DisplayMetrics.Density + 0.07f));

在你Application

public partial class App : Application
{
    public static int ScreenHeight;

最后在Page

public ScrollVerticalPage()
{
    InitializeComponent();
    FirstStack.HeightRequest = App.ScreenHeight;
    SecondStack.HeightRequest = App.ScreenHeight;
}

最终结果here