我明白想要重复的最佳实践,但这些答案并不一定能解决问题。我也同意这些最佳做法。不幸的是,他们无法在所有情况下实践。
我会考虑OP所说的问题是Android中的一个错误。说我将在这个活动中处理“configChanges”到Android意味着,如果配置发生变化,请不要终止我的活动。使用“更改”一词并不意味着传递给Activity的初始配置将被Activity忽略。要么改变措词,要么活动应该在原始配置中处理正确的方向。
解决方法是通过手动检查方向手动选择适当的布局文件。实质上,不要在configChanges =“orientation | keyboard | keyboardHidden”的配置中使用-land bucket,则会忽略land bucket。
// done in onCreate
int desiredLayoutId;
int orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
desiredLayoutId = R.layout.some_layout_landscape;
} else {
desiredLayoutId = R.layout.some_layout_portrait;
}
setContentView(desiredLayoutId);
再说一遍,我不喜欢这样,但如果你是在“不得已而为之”,并决定于管理自己的方向,你可以按照我提供的,以获得适当的布局文件中的代码。一个可能的用例可能是在创建一个流式视频的活动时,该视频不应该在屏幕旋转时卸载并重新加载。
发布您的完整清单文件... – 2011-04-06 16:52:28