视图更改为自定义视图的横向时,活动重新启动

时间:2013-02-01 14:39:29

标签: android android-layout

我正面临一个小问题。在我的应用程序中,我正在尝试为音频流应用程序设置纵向和横向视图,其中我使用自定义视图在布局上显示可视化工具。 我创建了两个文件夹,一个是布局,另一个是layout-land,我将xml放入具有相同名称的文件中,但更改了代码的大小,宽度。

我还添加了`android:configChanges =“orientation | keyboardHidden” 但是当我旋转手机时,方向更改会发生在横向上,但xml仅从默认布局显示..它不需要layout-land xml来显示横向模式。

因为我使用自定义视图在我的陆地和端口xml上显示可视化工具,所以我的mediaplayer对象连接到XML,当我改变方向时,媒体播放器对象重新创建并开始播放音乐

2 个答案:

答案 0 :(得分:2)

请参阅developer.android.com 它指定:

<强>机器人:configChanges 列出活动将自行处理的配置更改。在运行时发生配置更改时,默认情况下会关闭并重新启动活动,但声明具有此属性的配置将阻止活动重新启动。相反,活动仍在运行,并调用其onConfigurationChanged()方法。

由于您已指定android:configChanges =“orientation”,这意味着您的活动本身将处理来自onConfigurationChanged()的方向更改。

从清单中删除android:configChanges。你的问题将得到解决。

答案 1 :(得分:0)

当你写作时,

android:configChanges="orientation|keyboardHidden"

您的活动未重新创建,因此它不会从layout-land文件夹加载xml。如果要从layout-land文件夹加载xml,则必须手动更改覆盖onConfigurationChanged()并自行处理配置更改。看看我的回答here