1

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

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

如果我从横向开始并稍后尝试移动到纵向,则会发生相同的错误。

似乎我为我的 main 所做的任何布局都是将用于应用程序其余部分的布局。有没有办法解决这个问题?

还。我已经在我的活动清单中使用了 android:configChanges="orientation" 。

4

3 回答 3

2

使用android:configChanges="orientation"意味着您将处理代码中的方向变化。如果你想让它自动切换布局,你不应该在那里。

于 2012-06-28T18:54:21.537 回答
2

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

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

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

于 2012-06-28T19:10:02.460 回答
0

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

于 2013-09-17T08:58:13.920 回答