代码之家  ›  专栏  ›  技术社区  ›  Expert wanna be

Android配置更改方向

  •  1
  • Expert wanna be  · 技术社区  · 6 年前

    当我需要阻止用户重新启动活动时,我需要:

    android:配置更改=“方向”

    但在文件中,有一条关于方向的注释,

    注意:如果您的应用程序针对Android 3.2(API级别13)或 更高,那么你还应该声明“screenSize”配置, 景观定位。

    我有点害怕和 屏幕尺寸

    我想知道屏幕大小事件什么时候发生?

    何时(在什么情况下)调用screenSize事件?如果我将屏幕大小设置为configChanges会有什么副作用吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Maik    6 年前

    我查看了Android的源代码。有趣的是 ActivityRecord 方法 crossesSizeThreshold getConfigurationChanges screenSize 事件发生在屏幕的维度发生更改且更改可能对应用程序“重要”时。那么“重要”是什么意思:

    当一个应用程序调整屏幕大小时,Android会尝试决定是否需要重新启动活动。如果大小更改很小,则活动内容的重新布局可能就足够了,而对于更大的调整大小,则需要进行完整的配置更改。

    为了决定是否必须进行配置更改,Android会收集应用程序对大小敏感的资源限定符(例如。 layout-h400dp ). 如果resize跨越限定符边界,则会发生配置更改,而如果resize没有跨越边界,则会保留活动并只执行重新布局。

    configChanges 事件也发生在调整大小的过程中。