1

在我的应用程序中,我只是覆盖了 onConfigurationChanged 方法,如下所示

@Override
public void onConfigurationChanged(Configuration newConfig) {
    System.out.println("Configuration Changed");
    Configuration c = getResources().getConfiguration();

    if (c.orientation == Configuration.ORIENTATION_PORTRAIT) {
        // portrait

    } else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        // landscape

    }
}

但是在调用屏幕方向时不会调用它。

在清单中我的活动是这样的

<activity
        android:name=".MainActivity"
        android:configChanges="orientation"
        android:label="@string/title_activity_main" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
4

1 回答 1

2

它没有被调用super.onConfigurationChanged(newConfig);,所以方法变成了

@Override
public void onConfigurationChanged(Configuration newConfig) {

  super.onConfigurationChanged(newConfig);

  System.out.println("Configuration Changed");
  Configuration c = getResources().getConfiguration();

  if (c.orientation == Configuration.ORIENTATION_PORTRAIT) {
    // portrait
  } else if (c.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    // landscape
  }

}

并添加android:configChanges="orientation|screenSize"到清单中。

谢谢SSS :-)

于 2013-01-22T09:38:19.743 回答