I’m writing an android application that uses tabs with different contents (activities).
In one of these activities, I would like to lock the screen orientation to “Landscape”-mode,
but in the other activities, I want the normal orientation (according to sensor).
What I’m doing now is that I’m calling
when I switch to the landscape mode activity, and
when I switch back to the other activities. However, this doesn’t seem to work,
the whole application locks up. What is the normal approach to this problem?
In the Manifest, you can set the screenOrientation to landscape. It would look something like this in the XML:
<activity android:name="MyActivity" android:screenOrientation="landscape" android:configChanges="keyboardHidden|orientation|screenSize"> ... </activity>
MyActivity is the one you want to stay in landscape.
android:configChanges=... line prevents
onPause() from being called when the screen is rotated. Without this line, the rotation will stay as you requested but the calls will still be made.
orientation are required for < Android 3.2 (API level 13), and all three options are required 3.2 or above, not just
I had a similar problem.
When I entered
<activity android:name="MyActivity" android:screenOrientation="landscape"></activity>
In the manifest file this caused that activity to display in landscape. However when I returned to previous activities they displayed in lanscape even though they were set to portrait. However by adding
immediately after the OnCreate section of the target activity resolved the problem. So I now use both methods.
inside the Android manifest file of your project, find the activity declaration of whose you want to fix the orientation and add the following piece of code ,
for landscape orientation and for portrait add the following code,