Xamarin.android Xamarin Android,Xamarin表单方向更改
使用Xamarin表单UI框架的Xamarin Android应用程序。 我检测屏幕方向,只允许特定页面的纵向和横向,但只允许所有其他页面的纵向Xamarin.android Xamarin Android,Xamarin表单方向更改,xamarin.android,xamarin.forms,Xamarin.android,Xamarin.forms,使用Xamarin表单UI框架的Xamarin Android应用程序。 我检测屏幕方向,只允许特定页面的纵向和横向,但只允许所有其他页面的纵向 我试图调用RequestOrientation,但这会强制方向保持不变,并且不会再次发出方向更改通知。在你的App.Xaml.cs中有一个静态属性 public static bool IsPortraitOnly { get; set; } 在所有页面中将其设置为false,在您希望仅为纵向的页面中将其设置为true 在android项目中的mai
我试图调用RequestOrientation,但这会强制方向保持不变,并且不会再次发出方向更改通知。在你的App.Xaml.cs中有一个静态属性
public static bool IsPortraitOnly { get; set; }
在所有页面中将其设置为false
,在您希望仅为纵向的页面中将其设置为true
在android项目中的main活动
中,覆盖方法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);
}
以下是android中可用的方向值:
public enum Orientation
{
Landscape = 2,
Portrait = 1,
Square = 3,
Undefined = 0
}
要确定您是处于纵向模式还是横向模式非常容易:
static bool IsPortrait(Page p) { return p.Width < p.Height; }
如果在代码端编写代码,则会保持纵向模式。在Android解决方案属性中是否允许纵向以外的其他方向?
SizeChanged += (sender, e) => Content = IsPortrait(this) ? portraitView : landscapeView;
RequestedOrientation = ScreenOrientation.Portrait;