Я хочу изменить ориентацию одной страницы. Все мое приложение должно быть запущено в портретной ориентации, но я хочу сделать одну страницу как альбомную / портретную (обе)
Я взял ссылку ниже ссылки
http://www.appliedcodelog.com/2017/05/force-landscape-or-portrait-for-single.html
Код работает нормально в Android, но не в IOS.
AppDelegate.cs
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations(UIApplication application, [Transient] UIWindow forWindow)
{
var mainPage = Xamarin.Forms.Application.Current.MainPage;
if (mainPage is CartoonDetail_demo2 ||
(mainPage is NavigationPage && ((NavigationPage)mainPage).CurrentPage is CartoonDetail_demo2) ||
(mainPage.Navigation != null && mainPage.Navigation.NavigationStack.LastOrDefault() is CartoonDetail_demo2))
{
return UIInterfaceOrientationMask.All;
}
return UIInterfaceOrientationMask.Portrait;
}
Но это условие никогда не будет верным в любом случае. В конце концов я не могу получить страницу из стека навигации.
Итак, я использую простой способ сделать то же самое,
Я хочу сделать "CartoonDetail_demo2" этой страницей как Пейзаж / Портрет.
В методе OnAppearing () страницы "CartoonDetail_demo2" я установил один флаг как true.
И метод OnDisappering () страницы "CartoonDetail_demo2" Я установил один флаг как ложный.
используйте этот флаг в AppDelegate.cs.
public override UIInterfaceOrientationMask
GetSupportedInterfaceOrientations(UIApplication application, [Transient]
UIWindow forWindow)
{
if (AppConstants.IsOrientationAll)
{
return UIInterfaceOrientationMask.All;
}
return UIInterfaceOrientationMask.Portrait;
}
Теперь условие становится истинным, когда я захожу на страницу "CartoonDetail_demo2".
Но это не работает, и моя страница всегда в книжной ориентации .
Когда я просто вызываю этот метод без каких-либо условий, все приложение переходит в ориентацию «Все» (альбомная / книжная).
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations (приложение UIApplication, [Transient] UIWindow forWindow)
{
return UIInterfaceOrientationMask.All;
}
По умолчанию все мое приложение в книжной ориентации.
Я также попробовал несколько других демо, но ни одна из них не будет работать
https://xamarindevelopervietnam.wordpress.com/2017/05/23/how-to-rotate-specific-page-in-xamarin-forms/
я должен использовать плагин Plugin.DeviceOrientation?