Android - 在旋转设备/模拟器时停止移动到主要活动

时间:2011-12-09 06:31:15

标签: android android-layout android-activity

有一个应用程序可以在按下按钮时动态加载UI以获得唯一的LinearLayout。 主UI由Activity扩展,其他UI由LinearLayout扩展。唯一的LinearLayout在主UI中。 动态加载部件工作顺利。但是当改变设备或仿真器的方向时,它转到主ui.I有一个布局Stack,以在任何给定时间获得当前布局(UI)。 我想在旋转设备/模拟器时停止移动到主UI。 可能吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

我相信这是因为你没有正确处理方向改变的事件。您应该覆盖public void onConfigurationChanged (Configuration newConfig) method来处理此问题。

如果你没有覆盖它并且不强迫你的活动来保持方向,当方向改变时,系统会破坏你的应用并重新启动它。这就是为什么你再次看到主用户界面的原因。

解决方案:

  1. 在AndroidManifest.xml文件中显式声明所需的方向,因此将忽略此类事件。类似于:android:screenOrientation="portrait"。有关更多选择,请参阅here
  2. 覆盖onConfigurationChanged方法并在该方法中根据需要添加您的UI,或者根本不执行任何操作以便忽略此事件。

答案 1 :(得分:1)

这可能是因为活动正在重新定位方向变化。 在针对主要活动的清单文件中,添加以下属性

 <activity android:name=".YourMainActivity" android:configChanges="keyboardHidden|orientation"></activity>