Jak zablokować zmianę orientacji dla pojedyńczej strony w Xamarin.Forms

Zdarza się, że czasem nie chcesz aby tylko jedna strona w aplikacji nie zmieniała orientacji widoku. Ja miałem taką potrzebę dla strony logowania. Dzisiejszy wpis o tym jak to zrealizowałem.

Android

Do realizacja tego zadania będziemy potrzebować Custom Renderers.  W klasie renderera będziemy ustawiać właściwość RequestedOrientation aktywnego Activity na ScreenOrientation.Portrait.

Następnie tworzymy “customowy” widok w projekcie wspólnym (PCL, Shared), który będzie korzystał z wcześniej dodanego renderera i dziedziczył go dla każdego widoku, który nie będzie zmieniał orientacji.

Nie zapomnij o tym aby zmienić nazwę klasy w XAML-u dla konkretnego widoku:

iOS

Tu jest prościej – wystarczy, że nadpiszesz metodę GetSupportedInterfaceOrientations w klasie AppDelegate:

I zwrócisz żądaną przez ciebie orientację dla konkretnej strony.

orientation