Android 为什么配置更改必须侦听方向和屏幕大小以查看方向更改?

Android 为什么配置更改必须侦听方向和屏幕大小以查看方向更改?,android,orientation,config,Android,Orientation,Config,我在某个地方读到并做了笔记(忘记了源代码),开始android 11蜂巢,要听方向的变化,你必须做android:configChanges=“orientation | screenSize”。我的问题是,为什么你还要听屏幕大小的变化?我的意思是,如果你有一个400×600像素的平板电脑,你改变方向,新的尺寸将是600×400像素。谁能解释一下听屏幕大小的必要性吗?它是: 注意:如果您的应用程序目标API级别13或更高(如声明的 通过minSdkVersion和targetSdkVersion

我在某个地方读到并做了笔记(忘记了源代码),开始android 11蜂巢,要听方向的变化,你必须做android:configChanges=“orientation | screenSize”。我的问题是,为什么你还要听屏幕大小的变化?我的意思是,如果你有一个400×600像素的平板电脑,你改变方向,新的尺寸将是600×400像素。谁能解释一下听屏幕大小的必要性吗?

它是:

注意:如果您的应用程序目标API级别13或更高(如声明的 通过
minSdkVersion
targetSdkVersion
属性),您应该 还要声明
“屏幕大小”
配置,因为它也会更改 当设备在纵向和横向之间切换时

如果活动声明它将处理实际正在更改的所有配置,则调用该方法。在蜂窝中,
方向
总是伴随着
屏幕大小
(而
屏幕大小
以前并不存在)。因此,如果您只处理方向的更改,那么活动将被销毁并重新创建


另外,更明确一些(但基本上就是这个原因)。

这适用于应用程序在手机中启动,然后使用HDMI电缆将其连接到更大屏幕的情况。现在,你的应用程序有更多的可用空间,你可以从中获益。但在我介绍的情况下,屏幕大小会如何变化?是的,谢谢。只是好奇屏幕大小是如何变化的。设备保持不变dimensions@committedandroider是的,但是宽度和高度是交换的。这被认为是一种“尺寸变化”——例如,您可能有
layout-w500dp
资源,这些资源只适用于其中一个方向。