我在这个问题上花了好几个小时。我创建了一个main.xml,并为res / layout-land(landscape)格式设计了一个,另一个用于res / layout中的肖像。
当我旋转模拟器(ctrl-F11)时,我的应用程序使用正确的main.xml正确旋转到横向,但后续旋转回纵向只保留横向mail.xml。
这是在2.0 AVD中完成的。
出于渴望,我下载了新的多个分辨率的示例代码并且不得不创建一个新的2.1 AVD,令我意外的轮换使用此应用程序按预期正常工作。所以我决定在2.1 AVD上试用我的应用程序,它运行得很好。
那么,这是2.0 AVD中的Bug还是我需要做的一些特殊事情< 2.1 SDK版本?
这让我抓狂,因为没有人提到过这个问题。
提前致谢
答案 0 :(得分:9)
FWIW,它正式报告为bug here。
答案 1 :(得分:4)
安装了全新的Android开发环境,并创建了新的2.3.3 AVD。 (arm和x86)。即使使用系统应用程序,两者都有同样的问题。因此,这不是代码中的错误,因为系统应用程序存在同样的问题。
按“主页”并重新启动您的应用程序可以将其恢复为肖像状态。
答案 2 :(得分:3)
除非您指定
<activity android:name="MainActivity" android:configChanges="orientation">
在您的清单中,我认为您的应用应该自动选择正确的layout.xml。所以,对我来说,仿真器中似乎是一个错误。无论如何,我发现模拟器在其他方面是错误的。防爆。当你改变方向时,它会运行两次代码。
答案 3 :(得分:1)
我正在使用Eclipse for Java Helios,Android 2.2和我在笔记本电脑上遇到了同样的问题。我发现问题至少对我来说是什么。有时我在没有wifi的区域的笔记本电脑上工作,所以我没有连接到互联网,这似乎导致了这个问题。我已经通过转到wifi热点测试了它,当然,纵向和横向之间的切换再回来工作正常。也许模拟器只需要有连接即可,或者它是模拟器中的错误。
答案 4 :(得分:0)
是的,当涉及到方向更改时,模拟器有点麻烦。我没有遇到过这个具体的问题,但有时会做一些奇怪的事情。然而,这绝对不是&lt; 2.1至少在物理手机上的SDK,因为我仍然坚持使用我的Hero上的v1.5并通过选择正确的布局文件夹来正确处理方向更改以获取xml文件。
答案 5 :(得分:0)
我只做了2.1开发,但另一个想法我只是尝试CTRL-F12(切换到NEXT布局方向)而不是CTRL-F11(切换到PREVIOUS布局方向()并查看是否有任何变化。这来自Controlling the Emulator。
此外,您可以覆盖许多生命周期方法来监控幕后发生的事情。如果模拟器中存在错误,可能会让您知道。
答案 6 :(得分:0)
我也遇到了同样的问题。我解决了我不认为这是一个模拟器错误。我认为在一些真正的手机中也会表现得像这样。主要原因是活动并不令人耳目一新。你可以做一件事 - 覆盖
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
startActivity(getIntent());
finish();
}
并重新加载当前活动。它会对你有所帮助。