You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Android应用在Android12/13横竖屏切换时重启问题咨询

问题原因及解决方案

在Android 12(API 31)及更高版本中,系统对屏幕旋转时的配置变更逻辑做了调整,仅声明ConfigChanges.ScreenSize | ConfigChanges.Orientation已经不足以阻止Activity重启。

具体来说,Android 12+中,横竖屏切换会额外触发以下配置变化:

  • ConfigChanges.SmallestScreenSize:即使普通非折叠设备旋转,系统也会判定最小屏幕尺寸发生变更
  • ConfigChanges.ScreenLayout:屏幕布局结构的变更

你的Activity配置未包含这两个参数,系统会判定存在未声明的配置变更,因此触发Activity重启。

修复方案

更新Activity的ConfigurationChanges属性,补充缺失的参数,修改后的代码如下:

[Activity(Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.SmallestScreenSize | ConfigChanges.ScreenLayout)]

如果应用需要适配折叠屏设备,还可额外添加ConfigChanges.FoldingState参数;普通横竖屏场景,上述四个参数已足够。

另外需要注意:添加配置后,需重写OnConfigurationChanged方法处理旋转后的UI适配,避免布局错乱,示例代码:

public override void OnConfigurationChanged(Configuration newConfig)
{
    base.OnConfigurationChanged(newConfig);
    // 在此处理屏幕旋转后的UI调整逻辑,比如重新加载布局、更新控件状态等
}

内容的提问来源于stack exchange,提问作者huco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 07:50:34