景观和肖像Android应用程序

时间:2012-06-28 18:46:51

标签: android android-layout orientation

我创建了两个文件夹布局和layout-land,其中包含两个xml文件,一个用于纵向,另一个用于横向。这两个xml都可以工作,但这就是问题所在。

我的第一个屏幕是登录屏幕,第二个屏幕是主屏幕。如果我以纵向登录,然后在主屏幕上转动手机横向。布局将横向转动,但它使用纵向xml作为主屏幕。

如果我在风景中开始并且稍后尝试移动到肖像,则会发生同样的错误。

似乎我为我的主要做的任何布局,那就是将用于应用程序其余部分的布局。反正有没有绕过这个?

另外。我已经在我的清单中使用了android:configChanges =“orientation”来进行活动。

3 个答案:

答案 0 :(得分:2)

使用android:configChanges="orientation"表示您将在代码中处理方向更改。如果你想让它自动切换布局,你就不应该那样。

答案 1 :(得分:2)

如果您使用android:configChanges="orientation",则可以在配置更改后覆盖onConfigurationChanged以扩充新布局。

@Override
protected void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);                
    setContentView(...);
}

确保您有充分的理由阻止在方向更改时重新创建活动...而且最重要的是不要只是因为方向更改导致应用程序崩溃。自己处理配置更改会使使用备用资源变得更加困难,因为系统不会自动为您应用它们。当您必须避免因配置更改而重新启动时,此技术应被视为最后的手段,并且不建议用于大多数应用程序。

答案 2 :(得分:0)

确保两个不同文件夹中的两个xml文件具有相同的名称。