开发者

lock/unlock orientation

To lock my orientation to portrait, I us开发者_JS百科e:

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

I'm unsure what flag tells the activity to go back to relying on the device orientation. I imagine it is one of these:

SCREEN_ORIENTATION_FULL_SENSOR

SCREEN_ORIENTATION_SENSOR

SCREEN_ORIENTATION_UNSPECIFIED

SCREEN_ORIENTATION_USER

On another note, why isn't the android documentation open source? The documentation is completely lacking. Very few of the functions and flags have useful descriptions.


Per http://developer.android.com/reference/android/R.attr.html#screenOrientation (screenOrientation being what those values are linked to if you dig through the documentation), SCREEN_ORIENTATION_SENSOR or SCREEN_ORIENTATION_FULL_SENSOR will do it, depending on how much flexibility you want -- however, I suspect what you really want is to go back to the default setting, which is SCREEN_ORIENTATION_UNSPECIFIED so that it goes back to the system defaults, including any the user set.


An easy fix for this that worked for me is to add a line to AndroidManifest.xml like so:

Add android:screenOrientation="portrait"> in the application section.

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".App"
              android:label="@string/app_name"
              android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>


If the "android:immersive"attribute is set to"true " in the app's manifest entryfor this activity, the ActivityInfo.flagsmember always has its FLAG_IMMERSIVE bit set, even if the immersive mode is changed at runtime using the "setImmersive()" method.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜