I know this might sound as a thousand times answered question but I am really confused because this should be so easy that I don't understand what's going on.
I want one of my activities shows only in portrait mode. I thought, ok, just write in the AndroidManifest.xml something like this:
<activity android:name="Control" android:screenOrientation="nosensor">
</activity>
And that's all.
But the app ignores it. It switches to landscape when I turn the device. I am using ActionBarSherlock, Fragments and ViewPager.
How can I fix the orientation of the Activity? Thank you very much in advance.
we fix like this
<activity android:name=".Control" android:screenOrientation="portrait">
</activity>
your Activity name Must Be
android:name=".Control"
Have you tried android:screenOrientation="portrait" ?
Add android:screenOrientation="portrait" in your manifest.
OK, so this was another of my typical Logic errors.
If you have a Fragment with a ViewPager that contains another three Fragments it doesn't matter if you try to change the behaviour of any of the embeded Fragments because it won't work, logically. If you set screenOrientation to portrait on the main Fragment with the ViewPager that contains the other you will, now yes, prevent app from changing orientation.
Related
I have an activity that always rotates in the 2 view modes(portrait and auto-rotation) but want it to rotate only in auto-rotation mode.
I have set in my manifest
<activity
android:name=".Controlling"
android:screenOrientation="portrait">
</activity>
but when I am in portrait mode (when the activity should be fixed), it is still rotating.
I was looking to do it programmatically by using
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
but still does nothing
Do you know how to do it?
Try to change out android:screenOrientation="sensorPortrait" in AndroidManifest.xml
If you are doing it from fragment then you need to give an activity context.
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
Try with this and let me know it works for you or not.
In my application, most of the activities has fixed layout - portrait.
So I've mentioned in manifest:
<activity
android:name="com.example.activity5"
android:screenOrientation="portrait" />
But in one or two activities I've to show landscape layout also, in such a way that by default the activity opens in portrait mode. But if user tilts the phone to left/right it changes to landscape. (also if user rotates the phone to upside down, activity should not go to portrait mode).
That is, basically, I want orientation change in 3-way. Default(Potrait) & Left-Right(Landscape).
So, what changes do I need to do in my code & xmls?
Should I choose "sensorPortrait" OR "sensorLandscape"
Should I use android:configChanges="orientation"
I tried few steps, but they are throwing null pointer exception.
I dont know what I'm missing.
P.S. Both orientation have different layouts.
Thank You
I think you want to do this:
1) Just remove android:screenOrientation="portrait", and
2) In your code, in onCreate(), add this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
--(UNRELATED) SIDE NOTE--
To force landscape use this:
<activity android:name="com.example.activity5"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden" />
Write to Main.class(OnCreate):
setContentView(R.layout.activity_main);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Can a live wallpaper lock the screen in portrait mode? And if so, how?
I should mention that I have seen two supposed answers to this question on SO, one appeared inordinately complicated, I didn't understand it all and the answer was not accepted by the original poster. The second answer didn't work for me.
A third answer involving the use of:
android:screenOrientatin = "portrait" or "landscape"
has been suggested, but it is not clear exactly where this should go in the manifest.
EDIT: have tried putting android:screenOrientation="portrait" in many different places in the manifest, and none of them worked.
EDIT: another answer was to rotate your bitmaps and handle a rotation by just drawing everything sideways - but this looks very ugly because, as you rotate you phone, the OS instigates a rotation animation - which means that you get a horrid jumping effect as you turn the phone.
I'm beginning to suspect that the true answer is simply "no".
Did you try setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); ?
In your AndroidManifest.xml you should have something like:
<application
android:icon="#drawable/app_icon"
android:label="#string/nuboLogin"
android:name=".LoginApplication"
android:debuggable="true">
<activity
android:name=".WallPaperActivity"
android:label="#string/wallPaper"
android:windowSoftInputMode="adjustPan"
android:theme="#android:style/Theme.Black.NoTitleBar.Fullscreen" android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden">
</activity>
This should make sure that your Activity runs in portrait mode. If you prefer landscape, you can easily guess what you should modify
Android application restarts the activity when the orientation changes. You can either use
android:configChanges in your manifest. The activity is shut down and restarted by default, when a configuration change occurs at runtime, but declaring a configuration with this attribute will prevent the activity from being restarted. Instead, the activity remains running and its onConfigurationChanged() method is called.
use android:screenOrientatin = "portrait" or "landscape" it will force the app to run in the mode you specify. However it will not prevent the activity from being shut down and restarted.
I am trying to make a quiz app in which the questions are all displayed on the same activity. Everytime the screen is rotated, on create method is recalled and the quiz returns back to its first question, losing all the data regarding the other questions.
How can I prevent this ?
Thanks.
*ps: I don't want my application to work only at portrait or landscape mode but at both.
In your AndroidManifest, within your activity add:
android:configChanges="orientation"
So something like:
<activity android:name="MyActivity"
android:configChanges="orientation" />
This will tell the app that you want to handle changes by orientation yourself. You can do nothing with it, or catch the corresponding method in your app.
You can add this to your activities entry:
android:configChanges="keyboardHidden|orientation"
This question already has answers here:
Force "portrait" orientation mode
(12 answers)
Closed 2 years ago.
I'm pretty close to finished with my first game for Android, and I've come across a problem that's so simple I'm sure I'll feel stupid for not knowing how to solve it, but how can I force the app to stay in a Horizontal layout? Right now, if you turn the phone (emulator) it flips the graphics and squeezes them. I want the game to start horizontally and stay that way regardless of how the user turns the phone.
Thank you.
Open the AndroidManifest.xml and add the following android:screenOrientation="landscape"
e.g.
<activity android:name=".ActivtyName"
android:screenOrientation="landscape"
>
To do this at the Activity level, in case you want to change it dynamically or allow the user to select the orientation, use setRequestedOrientation in your Activity's onCreate method.
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
etc...
In the AndroidManifest file, try add android:screenOrientation="landscape" to the activity's attribute.
e.g.
<activity android:name=".myMainActivity"
android:screenOrientation="landscape">
Or, you could use a R.styleable file and set the Orientation settings there. More info
I think you should be able to set
android:screenOrientation="landscape"
on your Activity in the manifest. It doesn't look like there's an Application wide setting, so you'll probably need to do it for each Activity separately.
Here is an easier way might help someone having same problem and dont want to deal with xml. You can go to Application Nodes select your activity and select screen orientation. See the image attached for clarity.