1

我想让在横向/纵向中使用活动成为可能。活动从当前方向的布局开始(这意味着在开始活动之前)。之后,它必须坚持下去,而不是对方向变化做出反应。

我试着把

android:configChanges="orientation" 

在活动的清单中,并覆盖

@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
}

什么都不做(也尝试评论超级调用,但这会导致异常)但这并没有禁用旋转更改的效果 - 处理更改并重建布局,它只是没有使用正确的。

而且我不能使用

android:screenOrientation

因为似乎我必须始终指定一种模式,而这也不是我需要的。无论如何,如果我在那里指定一些东西,活动会在旋转时重建。试过了

android:screenOrientation="nosensor"

这没有任何作用

这里有一个当前方向的锁定代码 http://www.samcoles.co.uk/mobile/android-lock-and-unlock-screen-orientation/

但它实现了与在 XML 中指定方向相同的效果(保持布局但重建活动)。它有点接近我想要的(从一开始就保持方向),但重建了活动,我根本不希望它做出反应。

4

3 回答 3

1

android:configChanges="orientation" 根本无法在模拟器上运行,但在设备上运行良好。

于 2011-09-12T11:04:30.480 回答
0

尝试

@Override
public void onConfigurationChanged(Configuration newConfig) {
    newConfig.orientation = getResources().getConfiguration().orientation;
    super.onConfigurationChanged(newConfig);
}
于 2011-09-12T11:20:23.057 回答
0

将此添加到 onCreate

if (this.getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}
        else {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}
于 2014-02-04T22:34:14.523 回答