We have an app which consists of screens ("Activity" in Android) which mostly enforce landscape mode, because they deal with camera viewing, camera recording, ... Because there are so many of them, also the main screen enforces landscape mode. Aside from them there are a few screens which could be displayed both in landscape and portrait mode, such as (e.g.) lists of files.

We first started with all screens enforcing landscape mode to keep things consistent. But then we enabled the change between landscape and portrait for such listing screens to make navigation trough long lists easier.

On devices which have auto rotation enabled (this is a system-wide setting), everything behaves as expected. You mostly have your device in landscape and on list screens, you can rotate the device if you want (but you don't have to).

But on devices where the user disabled the system-wide auto rotation, this means that portrait is used by default. If you happen to leave the camera screen (forced landscape) to switch to a list while still holding the phone in landscape, the list suddenly is displayed in portrait mode and you are forced to turn your phone.

enter image description here

This is definitely unexpected and even resulted in bug reports. What would you advise?

  1. Force landscape for everything. Pro: Consistent. Con: Navigating trough long lists is much harder than it could be.
  2. Enable Auto-Rotation everywhere. This is not possible because of the camera-centric nature of our app. VVS would destroy the experience.
  3. Write custom code to ignore the system-wide auto-rotation disable and rotate the list screens to both landscape and portrait if needed. Pro: Long list navigation is still easy. Con: Goes against the explicit user intent to disable the rotation (think of cases where the auto rotation fails, e.g. when you are lying on your side and use the phone)
  4. Write custom code to force landscape mode everywhere only for devices with system-wide disabled auto rotation. Pro: Auto rotation is disabled if requested and on all other phones, long-list navigation is easy. Con: Disabled auto-rotation usually means that it is fixed portrait mode.

A few different options came to mind:

1. Let them know there's a better way.

You could provide users in this situation with a one-time dismissible tip--something along the lines of "To view this in landscape, disable your orientation lock by going to Settings > Screen & Brightness..."

2. You're already ignoring their settings in some cases, so just be consistent.

Since your use case requires you to ignore their orientation-lock preferences already, you could ignore that setting altogether and have them select their preference within the app's settings. Something like: "[x] Enable viewing of long* pages in portrait mode"

2a. Provide a UI toggle for alternating between portrait and landscape orientation on supported pages.

Similar to #2, but allow the user to toggle orientation on-the-fly, without having to navigate to their settings. However, it seems like this setting wouldn't need to be toggled often, so maybe it's more fitting to tuck it out of the way in a settings menu.

* Maybe there's a better way to distinguish these eligible pages to the user based on content or context... Perhaps they're always "detail" pages or "read more" screens..?

Your Answer

