如何在安卓系统中禁用横向模式?

我怎样才能在我的安卓应用中禁用某些视图的横向模式?

解决办法

在AndroidManifest.xml中的活动中添加android:screenOrientation="portrait" 。比如说。

编辑:由于这已经成为一个超级流行的答案,我感到非常内疚,因为强迫肖像很少是解决它经常被应用的问题的正确方法。 强制画像的主要注意事项。

  • 这并不能免除你对活动的思考 生命周期事件或正确保存/恢复状态。有很多 除了应用程序的旋转,还有很多事情可以触发活动 破坏/重新创建,包括像多任务这样不可避免的事情。没有捷径;学会使用捆绑和retainInstance片段。
  • 请记住,与相当统一的iPhone体验不同,有一些设备的纵向不是明显流行的方向。当用户使用带有硬件键盘或游戏板的设备(如Nvidia Shield)、ChromebooksfoldablesSamsung DeX,强制使用纵向会使你的应用体验受到限制或成为巨大的可用性麻烦。如果你的应用程序没有一个强有力的用户体验论据,导致支持其他方向的负面体验,你可能不应该强制使用横向。我说的是类似于 "这是一个收银应用程序,适用于一个特定型号的平板电脑,总是在一个固定的硬件底座上使用 "的情况。

因此,大多数应用程序应该让手机传感器、软件和物理配置自行决定用户想与你的应用程序进行互动的方式。不过,如果你对你的用例中的 "传感器 "方向的默认行为不满意,你可能还是要考虑一些情况。

  • 如果你主要关心的是在活动中意外改变方向,而你认为设备的传感器和软件不能很好地应对(例如,在一个基于倾斜的游戏中),可以考虑支持横向和纵向,但使用 "nosensor "来确定方向。这在大多数平板电脑上强制使用横向,在大多数手机上强制使用纵向,但我仍然不建议对大多数正常的应用程序使用这种方式(有些用户喜欢在手机上的横向软键盘上打字,许多平板电脑用户在纵向阅读--你应该让他们这样做)。
  • 如果你*仍然需要出于某种原因强制使用纵向,sensorPortrait'可能比Android 2.3以上的portrait'更好;它允许倒立的纵向,这在平板电脑使用中很常见。
评论(12)

在读到这篇帖子之前,我并不知道AndroidManifest.xml文件的开关,所以在我的应用程序中,我使用了这个文件来代替。

setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);     //  Fixed Portrait orientation
评论(3)

/platform/android目录下创建AndroidManifest.xml(从生成的目录中复制)。 然后将android:screenOrientation="portrait"添加到所有活动元素中。

评论(0)