为什么当用户在横向和纵向之间切换时 screenSize 会发生变化?

Why screenSize changes when the user switches between landscape and portrait?

根据 Android 指南,当用户旋转设备时 "screenSize" 会发生变化,为什么 "orientation" 值不足以表明这一点?

Link to android guide of activity tag

您可以在 Manifest

中解决这个问题

只需添加这一行

android:configChanges="orientation|screenSize"

如果您为横向创建不同的 XML,请不要为 activity 使用 android:configChanges="orientation|screenSize" 标签。

screenSize配置变化并不意味着物理屏幕发生了变化,而是意味着逻辑屏幕的尺寸发生了变化。例如,DisplayMetrics.widthPixels 值在从纵向旋转到横向后会大得多。

需要考虑的一件事是 screenSize 配置更改类型和 最小宽度 可用宽度 资源限定符两者均在 API 级别 13 中添加。旋转设备时屏幕的可用宽度会发生变化,因此将其标记为 "screen size" 更改是有道理的。