Android仅从纵向布局文件夹中获取xml

时间:2013-04-30 07:57:29

标签: java android xml android-layout

我分别为纵向和横向模式创建了两个XML文件,并将它们分别保存在文件夹布局 layout-land 中。

注意:由于某种原因,我在该活动的清单文件中提供了 android:launchMode =“singleTask”

问题:在纵向和横向模式下,它都需要布局文件夹中的xml。 仅从纵向布局文件夹中获取xml的原因是什么?是因为“单一任务属性”吗?我在这里错过了什么?

提前致谢。

1 个答案:

答案 0 :(得分:1)

通常,当您更改方向时,会触发配置更改事件,您的活动将被销毁并在新布局中重新创建。重新创建时,将使用相应的纵向或横向布局。

由于您指示明确处理方向更改,因此不会在方向更改时销毁/重新创建活动 - 因此不会更改布局。要实现您的目标,您需要在应用程序启动时存储原始方向,然后在代码中处理方向更改,如下所示:

private int currentOrientation;

public void onCreate(Bundle sis) {
    ...
    currentOrientation = getResources().getConfiguration().orientation;
}

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if(currentOrientation != newConfig.orientation) {
        //re-set the layout into your activity
        setContentView(R.layout.my_layout);
        currentOrientation = newConfig.orientation;
    }
}

根据您的逻辑,您可能希望从现有视图中获取值,并在重新设置布局后重新设置它们。