I have an application in landscape orientation. This is how the manifest looks like:
<activity
android:name="Activity"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen"
android:launchMode="singleTask"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden">
</activity>
When I lock and unlock the device the orientation changes to portrait for half of second and then goes to landscape. I noticed that this is not happening on all devices. I could reproduce it on Samsung Galaxy SI.
Any ideas what can it be?
Adding "orientation|screenSize" to configChanges does not fix the issue.
EDIT:
Basically, the layout is losing its orientation when I slide the unlock screen(specially on Samsung devices) because it's taking the orientation of the slide activity which is portrait.
Changing the name of the layout folder to "layout-land" may fix this by only allowing drawing in landscape
You need to add the below properties in the activity tag of manifest you want,,,rather than adding your application tag
<activity
android:name="com.example,MainActivity"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustPan" >
</activity>
Or if this do not work,,, then add this code just below the setContentView() in your Activity
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Related
My app is done in Titanium. I am struggling with a issue which is that when I= launch the App by keeping the device in landscape mode. Then while loading Splash screen it first goest in Landscape mode and when app finally launches Whole UI got distorted by that orientation change. I have added the below line of code in TiApp.xml
<application android:screenOrientation="portrait" android:configChanges="keyboardHidden"/>
even though its rotating. I want to stop the orientation change of that splash screen while launching. Any idea?
In each activity you have to write
<activity android:name=".MainActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="landscape" />
Hope it help!!
Try this. Add you custom androidManifest.xml For custom xml
and add this line in androidManifest.xml and run I think this is very useful for you.
<activity android:configChanges="keyboardHidden" android:name="org.appcelerator.titanium.TiActivity" android:screenOrientation="portrait"/>
<activity android:configChanges="keyboardHidden" android:name="ti.modules.titanium.ui.TiTabActivity" android:screenOrientation="portrait"/>
Cheers
How can I make it so the screen orientation is always landscape?
Do I need to add something to the manifest.xml?
Add this android:screenOrientation="landscape" to your <activity> tag in the manifest for the specific activity that you want to be in landscape.
Edit:
To toggle the orientation from the Activity code, call setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) other parameters can be found in the Android docs for ActivityInfo.
Yes, in AndroidManifest.xml, declare your Activity like so: <activity ... android:screenOrientation="landscape" .../>
Just two steps needed:
Apply setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); after setContentView().
In the AndroidMainfest.xml, put this statement <activity android:name=".YOURCLASSNAME" android:screenOrientation="landscape" />
Hope it helps and happy coding :)
One thing I've not found through the answers is that there are two possible landscape orientations, and I wanted to let both be available!
So android:screenOrientation="landscape" will lock your app only to one of the 2 possibilities, but if you want your app to be limited to both landscape orientations (for them whom is not clear, having device on portrait, one is rotating left and the other one rotating right) this is what is needed:
android:screenOrientation="sensorLandscape"
When you are in android studio 3 or above
you need to add following lines AndroidManifest.xml file
<activity
android:name=".MainActivity"
android:configChanges="orientation"
android:screenOrientation= "sensorLandscape"
tools:ignore="LockedOrientationActivity">
One thing this is sensor Landscape, means it will work on both landscape sides
But if you only want to work the regular landscape side then, replace sensorLandscape to landscape
You can try with
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
I had an application of timer and my app should always be in landscape mode. In manifest, I had used:
<activity android:name=".MActivity"
android:label="#string/app_name"
android:screenOrientation="landscape"
android:theme="#android:style/Theme.NoTitleBar"
android:configChanges="keyboardHidden|orientation">
But sometimes, when I switch from background to foreground, it first appears in portrait mode and then resizes to landscape mode. What's happening here?
Thanks in advance.
Do you have the same situation if you paste this line in every of your activities (in the onCreate):
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
use android:configChanges="keyboard|keyboardHidden" not the orientation for this attribute
I want to lock horizontal view in my app, is it possible?
Help is highly appreciated,
Thanks,
Use android:screenOrientation="landscape" attribute for your activity.
add this code in your menifest...
<activity android:name=".activity"
android:configChanges="orientation" android:screenOrientation="portrait"></activity>
For new android Studio 3 and above
you need to put these lines in AndroidManifest.xml code if you want to set the orientation to portrait
One thing this is sensor portrait, means both upside - downside will work.
But if you only want to put portrait for upside then, replace sensorPortrait to portrait
<activity
android:name=".MainActivity"
android:configChanges="orientation"
android:screenOrientation="sensorPortrait"
tools:ignore="LockedOrientationActivity">
Same goes for only landscape too
just one parameter change portrait to landscape
<activity
android:name=".MainActivity"
android:configChanges="orientation"
android:screenOrientation= "sensorLandscape"
tools:ignore="LockedOrientationActivity">
Hey all - I have tried to only display my app in portrait view orientation to no avail.
I have the code: android:screenOrientation="portrait" in every button, ImageView, TextView, etc... in my xml files but when I tilt the phone to the side, it still goes into landscape view.
I do call the camera in my app, but I don't think that is the issue - any thoughts?
the layout is the wrong place. you have to place it in the activity like this:
<activity android:screenOrientation="portrait" ...>
Force an Android activity to always use landscape mode
is google that hard to understand? google "android force portrait" and the first four links shows the answer... (sorry.. just had to let it out :) )
You have to put the android:screenOrientation="portrait" in the AndroidManifest.xml.
In AndroidManifest.xml you have to do something like this:
<activity android:name=".Your_Activity_Name"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"/>