倒置旋转不会触发配置更改

Mir*_*ric 5 android

当我将Android手机颠倒时,我的"活动"不会旋转以显示布局颠倒,而是保持横向模式.我用一个非常简单的HelloWorld应用程序尝试了这个.我添加android:configChanges="orientation"到清单并onConfigurationChange()在Activity中覆盖以在那里设置断点.将设备颠倒旋转会产生一个配置更改,从纵向(颠倒)到横向,但没有从横向到纵向的第二个更改(颠倒).这是一个Android问题还是我需要做的事情?

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="hello.world"
    android:versionCode="1"
    android:versionName="1.0" >
   <uses-sdk android:minSdkVersion="10" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:configChanges="orientation"
            android:name=".HelloWorldActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

活动:

public class HelloWorldActivity
  extends Activity
{
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }

  public void onConfigurationChanged(Configuration newConfig)
  {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
    {
      Log.e("MDO", "orientation change: landscape");
    }
    else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
    {
      Log.e("MDO", "orientation change: portrait");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ł K 8

这不是问题,而是Android的运作方式.它只能在横向模式下观看,而不是纵向观看(如果我没记错的话,可以在版本2.2中查看).从纵向移动到横向时发生配置更改,反之亦然.如果您想检查手机是否倒置或无论您需要访问加速计传感器的方向.这是一个关于如何使用它的教程,在这里你有SensorManager文档.

编辑:正如问题的作者自己发现的那样android:screenOrientation="fullSensor",只要您不想支持比Android 2.3更早的版本(API级别9),添加到您的清单就足够.

  • 实际上,如果我添加android:screenOrientation ="fullSensor",我确实得到了所需的行为. (2认同)