为了处理方向变化,我为我的活动使用了以下代码片段。
[Activity (Label = "Activity",ConfigurationChanges = ConfigChanges.Orientation
| ConfigChanges.KeyboardHidden)]
和
public override void OnConfigurationChanged(Android.Content.Res.Configuration newConfig)
{
base.OnConfigurationChanged (newConfig);
if (newConfig.Orientation == Android.Content.Res.Orientation.Landscape)
{
Console.WriteLine("landscape");
}
else if (newConfig.Orientation == Android.Content.Res.Orientation.Portrait)
{
Console.WriteLine("portrait");
}
}
我从Portrait
模式开始,然后切换到Landscape mode
并再次切换回Portrait
模式。所以预期的输出应该是:
landscape
portrait
但 控制台输出显示
landscape
landscape
portrait
即当从模式切换时,Landscape mode
if和else都被执行。Portrait
我不知道为什么会这样。
我是Mono for Android 的绝对初学者,所以任何帮助表示赞赏。