lomza
lomza

Reputation: 9706

Disable landscape mode for a whole application

Is the there a way to set a landscape mode to the whole application, not by adding android:screenOrientation="portrait" to every activity in AndroidManifest?

Upvotes: 6

Views: 5747

Answers (3)

Steve Bergamini
Steve Bergamini

Reputation: 14600

Here's the only thing I can think of. Write a class that extends Activity and put the following in that class:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

Then, instead of extending Activity in your other classes, extend the new class.

Upvotes: 10

Kris
Kris

Reputation: 470

One programmatic way of doing this, that I can think of, is to create a super class that extends activity and extend all your classes from there.

Have the below setting in the super class in a protected method and call super.xxx() to initiate this:

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

In case you what a specific activity in a different way you can simply override this.

[I have not tried this yet, but by the knowledge of OOP this works]

Upvotes: 7

FoamyGuy
FoamyGuy

Reputation: 46856

You could try putting that attribute in the node of your manifest. I don't know if that is supported though. And if not Im afraid putting it in each of your is going to be the next easiest way.

You might be able to achieve it by making yourself a CustomActivity that extends activity and sets the window flags to be Portrait in the onCreate. Then with all of your other activities you could extend your CustomActivity instead of plain Activity.

Upvotes: 0

Related Questions