【发布时间】:2018-01-29 02:32:48
【问题描述】:
根据 Android 指南,当用户旋转设备时,“screenSize”会发生变化,为什么“orientation”值不足以表明这一点?
【问题讨论】:
标签: android android-manifest android-configchanges
根据 Android 指南,当用户旋转设备时,“screenSize”会发生变化,为什么“orientation”值不足以表明这一点?
【问题讨论】:
标签: android android-manifest android-configchanges
screenSize的配置变化并不代表物理屏幕发生了变化,而是逻辑屏幕的尺寸发生了变化。例如,从纵向旋转到横向后,DisplayMetrics.widthPixels 的值会大得多。
需要考虑的一点是,screenSize 配置更改类型和 最小宽度 和 可用宽度 资源限定符都已在 API 级别 13 中添加。可用当您旋转设备时,屏幕宽度会发生变化,因此将其标记为“屏幕尺寸”变化是有意义的。
【讨论】:
您可以在 Manifest 中解决此问题
只需添加这一行
android:configChanges="orientation|screenSize"
如果您为横向创建不同的 XML,请不要为该活动使用 android:configChanges="orientation|screenSize" 标记。
【讨论】:
android:configChanges 属性以防止框架破坏和重新创建活动是一个坏主意,并且只能由确切知道他们正在进入什么领域的专家来完成。简单地学习如何在 android 活动生命周期内工作,普通用户会好得多。