-1

我正在做一个项目。我在哪里使用屏幕方向横向和纵向。我还使用android:configChanges="keyboardHidden|orientation|screenSize"这样的方式,以便在切换方向时不会刷新活动。

现在,当我使用 configChanges = "orientation" 时,应用程序无法从 layout-port->layout-land xml 布局切换。

我可以从横向->纵向或纵向->横向切换,但它从两个方向显示布局端口xml,而不是从布局端口->布局-土地或
布局-土地->布局端口切换。

4

3 回答 3

0

在 AndroidManifest 文件中,仅添加android:configChanges="orientation"并删除您要处理此方向的活动的其他两个

于 2013-10-30T10:43:12.243 回答
0

add this in ur activity

inside of oncreate()
if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE) 
        setContentView(R.layout.land);
else if(getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) 
        setContentView(R.layout.port);



@Override
public void onConfigurationChanged(Configuration config) {
    super.onConfigurationChanged(config);


    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setContentView(R.layout.land);
    } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
        setContentView(R.layout.port);
    }
}
于 2013-10-30T10:40:55.560 回答
0

尝试这个

改变android:configChanges="keyboardHidden|orientation|screenSize"

android:configChanges="orientation"

并在您的活动中,覆盖onConfigurationChanged方法

就像 Manivannan 在他的回复中描述的那样

@Override
public void onConfigurationChanged(Configuration config) {
    super.onConfigurationChanged(config);


    if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        //set your landscape layout
    } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
        //the same for portrait layout
    }
}

而已。

于 2013-10-30T11:30:24.067 回答