2016-12-21 10 views
1

Xamarin Android App, die das Xamarin Forms UI-Framework verwenden. Ich erkenne die Bildschirmausrichtung und möchte nur Hochformat und Querformat für eine bestimmte Seite, aber nur Hochformat für alle anderen Seiten zulassen.Xamarin Android, Xamarin Forms Orientierungsänderung

Ich habe versucht, RequestOrientation aufzurufen, aber das zwingt die Ausrichtung, um gleich zu bleiben und feuert meine Orientierungsänderung Benachrichtigung nicht erneut.

+0

Lassen Sie andere Orientierungen als Hochformat in Android-Lösung Eigenschaften? – Kuba

Antwort

2

Haben Sie eine statische Eigenschaft in Ihrem App.xaml.cs

public static bool IsPortraitOnly { get; set; } 

Set es false auf allen Seiten und auf true auf der Seite möchten Sie es nur Portrait sein.

In Ihrem MainActivity in android Projekt, überschreibt die Methode OnConfigurationChanged:

public override void OnConfigurationChanged(Configuration newConfig) 
    { 
     //using to prevent the OnCreate from firing when rotating or screen size is changing 
     if (App.IsPortraitOnly) 
     { 
      RequestedOrientation = ScreenOrientation.Portrait; 
      newConfig.Orientation = Orientation.Portrait; 
     } 
     base.OnConfigurationChanged(newConfig); 
    } 

Im Folgenden sind die verfügbaren Orientierungswerte in android:

public enum Orientation 
{ 
    Landscape = 2, 
    Portrait = 1, 
    Square = 3, 
    Undefined = 0 
}