C# Xamarin Android可能的屏幕定位。横向错误

C# Xamarin Android可能的屏幕定位。横向错误,c#,android,visual-studio,xamarin,C#,Android,Visual Studio,Xamarin,我的应用程序有一些奇怪的行为,所以我重新创建了这个应用程序,直到它被窃听,并发现屏幕方向。景观是罪魁祸首 如果您在visual studio 15中创建一个新的空白应用程序,并将MainActivity替换为: [Activity(Label = "TestLandscapeBug", MainLauncher = true, Icon = "@drawable/icon", ScreenOrientation = ScreenOrientation.Landscape)] public

我的应用程序有一些奇怪的行为,所以我重新创建了这个应用程序,直到它被窃听,并发现屏幕方向。景观是罪魁祸首

如果您在visual studio 15中创建一个新的空白应用程序,并将MainActivity替换为:

[Activity(Label = "TestLandscapeBug", MainLauncher = true, Icon = "@drawable/icon",
    ScreenOrientation = ScreenOrientation.Landscape)]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
    System.Console.WriteLine("OnCreate");
    base.OnCreate(bundle);

    SetContentView(Resource.Layout.Main);
}
protected override void OnDestroy()
{
    System.Console.WriteLine("OnDestroy");
    base.OnDestroy();
}
protected override void OnPause()
{
    System.Console.WriteLine("OnPause");
    base.OnPause();
}
protected override void OnRestart()
{
    System.Console.WriteLine("OnRestart");
    base.OnRestart();
}
protected override void OnResume()
{
    System.Console.WriteLine("OnResume");
    base.OnResume();
}
protected override void OnStart()
{
    System.Console.WriteLine("OnStart");
    base.OnStart();
}

protected override void OnStop()
{
    System.Console.WriteLine("OnStop");
    base.OnStop();
}

}
运行应用程序并按下睡眠按钮: 调用OnPause、OnStop、OnDestroy、OnCreate、OnStart、OnResume和OnPause

如果删除ScreenOrientation=ScreenOrientation,则调用横向暂停和顶部暂停

这是虫子吗?还是我做错了什么?
如何修复此问题或使用其他东西锁定横向屏幕。

当屏幕锁定时,活动切换到纵向模式是正常的。每当方向改变时,调用OnDestroy,后跟OnCreate。所以,没什么好担心的,因为你看到的是Android的默认行为


纵向是锁定屏幕的默认方向,因此锁定时您的活动也会切换到该方向是有意义的。

您也可以使用[Actitity(ConfigurationChanges=ConfigChanges.orientation | ConfigChanges.ScreenSize)]阻止娱乐。@b.holz很高兴知道,没想到!