我想在不丢失活动当前状态的情况下改变方向。
我在 manifest.xml 中使用android:configChanges="orientation|keyboardHidden|screenSize",然后它不会加载横向的 xml 文件,而是更改 hte Portrait main.xml 的方向。
当方向更改为 landsacpe 时,我想要 layout-land/main.xml,反之亦然,而无需重新启动活动。
我想在不丢失活动当前状态的情况下改变方向。
我在 manifest.xml 中使用android:configChanges="orientation|keyboardHidden|screenSize",然后它不会加载横向的 xml 文件,而是更改 hte Portrait main.xml 的方向。
当方向更改为 landsacpe 时,我想要 layout-land/main.xml,反之亦然,而无需重新启动活动。
这会在一定程度上帮助你
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//Do your action
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//Do your action
}
}
当您必须实施的方向发生变化时,该活动将重新启动,onSaveInstanceState()
并且onRestoreInstanceState()
这可以帮助你
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
获取更多帮助或详细信息 使用处理运行时更改