android:configChanges="screenSize"属性是什么意思?

9
我想知道在AndroidManifest.xml中,一个Activity所提到的上述属性是什么以及它(可能)为什么需要?
我已经阅读了关于这个主题的Android文档,但解释对我来说不是非常清楚。我想知道一个示例情况下为什么我需要设置此属性。

3
当前可用的屏幕尺寸已经发生了变化。这表示当前可用的尺寸相对于当前的纵横比发生了改变,因此当用户在横向和纵向之间切换时会发生变化。 - Blackbelt
从http://developer.android.com/guide/topics/manifest/activity-element.html#config获取 - codeMagic
1
谢谢,我已经阅读了文档。不幸的是,我还不太清楚它的作用。 - Philipp Jahoda
如果屏幕尺寸发生变化,它会调用onConfigurationChanged函数。 - Blackbelt
1个回答

19

你可能已经知道,每当手机的参数发生更改时,系统都会重新构建整个 Activity 以加载新的资源。其中一个参数是屏幕大小,在手机旋转时可以发生变化。

如果你在清单文件中定义了 android:configChanges ,你就可以完全控制你的应用程序,这意味着系统不会销毁你的 Activity,它只会调用其 onConfigurationChanged 方法。这样你就需要管理屏幕的重新调整。


好的,谢谢。这是否意味着如果我在Activity中使用了一个依赖于屏幕大小的CustomView,并设置了此属性,那么CustomView的大小不会随着方向的改变而调整? - Philipp Jahoda
2
如果宽度/高度设置为match_parent/fill_parent,它将被调整大小,但内容不会用新的尺寸重新绘制。 - pshegger
谢谢,这就是我需要知道的。 - Philipp Jahoda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接