android:screenOrientation tag in application does not work

Zoombie picture Zoombie · Feb 21, 2011 · Viewed 12.4k times · Source

The android:screenOrientation tag when placed in <application> does not work. But when I put android:screenOrientation in a <activity> tag it works.

If android:screenOrientation tag works in <application> then, there would no need to put android:screenOrientation handling for every activity.

I wonder, why there is such strange behavior in Android platform for screenOrientation tag?

Answer

CommonsWare picture CommonsWare · Feb 21, 2011

The <application> element does not support android:screenOrientation. You can tell this by reading the documentation.

As to why it is not supported in the <application> element, I imagine it is at least in part because you should not be using it on many activities, and perhaps not all activities.

For example, your proposed android:screenOrientation="portrait" simply should not be done, pretty much ever. landscape I can understand, for certain types of activities (cameras, video players, some games). But portrait means:

  • You do not want users to be able to use their side-slider hardware keyboards
  • You do not want users to be able to use their tablets in the Android-natural landscape orientation
  • You do not want to run on Google TV

android:screenOrientation should be used only on those activities that absolutely positively have to be in that orientation. Otherwise, please respect your users' wishes as to which orientation to use. Not allowing you to set it for the application as a whole is simply one way to help ensure that you actually think about whether it is needed for a given activity or not.