方向更改后避免重新加载视图

时间:2014-06-26 08:42:19

标签: android

我是Android开发的新手。最近我一直对这个问题感到困惑。  每次方向更改时,我的视图都会重新加载。我想避免这种情况。这种情况发生在从景观到肖像的变化,反之亦然。

2 个答案:

答案 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