我是Android开发的新手。最近我一直对这个问题感到困惑。 每次方向更改时,我的视图都会重新加载。我想避免这种情况。这种情况发生在从景观到肖像的变化,反之亦然。
答案 0 :(得分:1)
在活动清单中添加以下内容:
android:configChanges="orientation|screenSize"
因此,您的活动应如下所示:
<activity
android:configChanges="orientation|screenSize"
android:name=".YourActivity"/>
这样可以防止破坏方向变化的活动。
答案 1 :(得分:0)
在方向改变之后Android重新加载视图的原因是该视图很可能是另一个视图,而不是在方向改变发生之前显示的视图,例如,新布局,字体大小,图像视图或其他资源。 Android系统能够在方向改变的情况下自动为不同的屏幕尺寸(例如高度,宽度,密度......)加载合适的资源。
为此,Android首先调用活动的onDestroy()
方法,然后调用其onCreate()
方法,以使活动能够重新加载资源和活动状态。
如果由于某种原因您不想要这种行为,您可以按照上述建议并在您的activity元素中添加android:configChanges
属性。在这种情况下,Android会调用活动的onConfigurationChanged()
方法,而不是onDestroy()
和onCreate()
。如果需要,onConfigurationChanged()
是放置代码以适应新方向的方法。如果没有,它也可以留空。
如需进一步阅读,请参阅http://developer.android.com/guide/topics/resources/runtime-changes.html