小编典典

如何在 Android 中禁用横向模式?

all

如何为我的 Android 应用程序中的某些视图禁用横向模式?


阅读 211

收藏
2022-02-28

共1个答案

小编典典

添加android:screenOrientation="portrait"到 AndroidManifest.xml 中的活动。例如:

<activity android:name=".SomeActivity"
          android:label="@string/app_name"
          android:screenOrientation="portrait" />

由于这已成为一个非常受欢迎的答案,我感到非常内疚,因为强制肖像很少能解决它经常应用的问题的正确解决方案。
强制肖像的主要注意事项:

  • 这并不能免除您必须考虑活动生命周期事件或正确保存/恢复状态的责任。除了应用程序轮换之外,还有很多事情可以触发活动破坏/重新创建,包括不可避免的事情,例如多任务处理。没有捷径;学习使用包和retainInstance片段。
  • 请记住,与相当统一的 iPhone 体验不同,有些设备的纵向并不是明显流行的方向。当用户使用带有硬件键盘或游戏手柄的设备(如 Nvidia Shield、Chromebook可折叠设备或Samsung DeX)时,强制人像可能会使您的应用体验受到限制或极大的可用性麻烦。如果您的应用程序没有强大的 UX 参数会导致支持其他方向的负面体验,那么您可能不应该强制横向。我说的是“这是一款收银机应用程序,适用于始终用于固定硬件底座的特定型号平板电脑”。

因此,大多数应用程序应该让手机传感器、软件和物理配置自行决定用户希望如何与您的应用程序交互。但是,如果您对用例中的默​​认方向行为不满意,您可能仍需要考虑一些sensor情况:

  • 如果您主要担心的是在您认为设备的传感器和软件无法很好应对的活动过程中意外的方向变化(例如,在基于倾斜的游戏中),请考虑支持横向和纵向,但使用nosensor用于方向。这会强制大多数平板电脑上的横向和大多数手机上的纵向,但我仍然不建议对大多数“普通”应用程序这样做(一些用户只是喜欢在手机上输入横向软键盘,而许多平板电脑用户以纵向阅读 - 和你应该让他们)。
  • 如果由于某种原因 仍然 需要强制人像,sensorPortrait可能比portraitAndroid 2.3 (Gingerbread) 及更高版本更好;这允许倒置的肖像,这在平板电脑使用中很常见。
2022-02-28