无法在方向更改时加载活动

时间:2017-11-19 00:30:19

标签: android android-layout android-activity screen-orientation

我可以点击按钮加载新的活动:

public void onClick(View v) {
            Toast.makeText(MainActivity.this, R.string.toast, Toast.LENGTH_SHORT).show();
            startActivity(new Intent(MainActivity.this, LandscapeActivity.class));

        }

但是当方向改变时可以做到。我把它放到初始布局(activity_main)

android:configChanges="orientation|screenSize|keyboardHidden"

这是初始活动(MainActivity)(也尝试了注释字符串):

public void onConfigurationChanged(Configuration newConfig)
    {
        super.onConfigurationChanged(newConfig);
        setContentView(R.layout.activity_landscape);
        //startActivity(new Intent(MainActivity.this, LandscapeActivity.class));
    }

onConfigurationChanged只是没有被称为日志显示。屏幕在旋转。

2 个答案:

答案 0 :(得分:0)

您希望在res/layout-land下定义布局文件,而不是手动设置横向布局。见https://developer.android.com/training/basics/supporting-devices/screens.html#create-layouts

答案 1 :(得分:0)

此方法似乎仅适用于14个以上的sdk版本,因此如果您的sdk版本低于它可能无法正常工作。

可能的解决方案:将targetSDK版本更改为14或更高版本。