October 30, 2014

Rotational Forces, Part Four

In the first three parts of this series, we covered ways for your Android application to cope with rotation events. Some are simple, some are more flexible.

Today, though, we’ll take a look at a radical alternative: tell Android not to rotate your activity at all. If the activity does not rotate, you do not have to worry about writing code to deal with rotations.

To block Android from rotating your activity, all you need to do is add android:screenOrientation=”portrait” (or “landscape”, as you prefer) to your AndroidManifest.xml file, as shown below:

[sourcecode language="xml"]
apk/res/android"
package="com.commonsware.android.rotation.four"
android:versionCode="1"
android:versionName="1.0.0">

android:screenOrientation="portrait"
android:label="@string/app_name">







[/sourcecode]

Since this is applied on a per-activity basis, you will need to decide which of your activities may need this turned on.

At this point, your activity is locked into whatever orientation you specified, regardless of what you do. The following screen shots show the activity we developed in the first three posts, using the above manifest, with the emulator set for both portrait and landscape orientation — note that the UI does not move a bit, but remains in portrait mode.

Forced-Portrait Orientation, in Portrait Mode

Forced-Portrait Orientation, in Portrait Mode

Forced-Portrait Orientation, in Landscape Mode

Forced-Portrait Orientation, in Landscape Mode