2016-06-25 3 views
0

私はXamarin.formsでアプリを使用しています。 私がやっていることは本当に難しいです。これまでのところは分かりません。Xamarin.formsにスクロールビュー(垂直)で2つのフルサイズのページを追加するにはどうすればよいですか?

スクロールビュー(垂直)に2つのビュー(またはページ)を追加し、各ビューのサイズが画面サイズと同じであるようにしたいとします。だから私が下にスクロールすると、2番目のビューが表示され、最初のビューが隠されます。

xamlを使用して作成するにはどうすればいいですか?

私はstacklayout、grid、relative、absoluteを試しました。 何も機能しません。 (私はそれを行ういくつかの方法があると信じて)

ありがとう。

+0

2つのContentViewを含むStackLayoutを含むScrollViewを使用して、それぞれの画面に表示されるサイズに調整します。 – Jason

+0

@Jasonこんにちは、私はそれを試して、実際にはうまくいくと思っていますが、ちょうど2つのコンテンツを作成する画面の半分のサイズを表示します。 –

+0

あなたが探しているものは、スクロールビューの代わりにカルーセルビューです。 このリンクをチェックするhttp://chrisriesgo.com/xamarin-forms-carousel-view-recipe/ – BraveHeart

答えて

2

私がこれに使用した解決策は、ScrollViewの内部に垂直方向を持つStackLayoutを作成することでした。その中には2つの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で行う必要があります。あなたApplication

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

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

MainActivity(微調整する必要+ 0.07f)内部のAndroid上で

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

FinishedLaunching内部のiOS上で

そして最後にPage

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

最終結果here

+1

もう一度@jzeferinoに感謝します。それは正しい、良いアプローチです。本当に感謝しております。 –

+1

Android上では完璧ではありませんが、もう少しテストしてAndroidピクセルとxformsサイズの変換を関係させてみてください。ありがとうございました。 – jzeferino

関連する問題