如何将Android应用程序的方向锁定为纵向模式?

Ank*_*wat 74 user-interface android

我正在开发一个Android应用程序,当用户旋转设备时,我不想将其更改为横向模式.此外,我希望锁定方向为手机上的纵向模式和平板电脑上的横向模式.这可以实现,如果是的话怎么样?谢谢.

Rob*_*ood 129

您只需在文件中的activity元素内定义下面的属性即可AndroidManifest.xml.它会将您的方向限制为纵向.

机器人:screenOrientation = "画像"

例:

        <activity
            android:name="com.example.demo_spinner.MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
        </activity>
Run Code Online (Sandbox Code Playgroud)

另外,根据Eduard Luca的评论,screenOrientation="sensorPortrait"如果您想要旋转180度,也可以使用.

  • 或者`sensorPortrait`如果你希望用户能够将屏幕旋转180度:) (19认同)
  • 这是如何解决问题的第二部分的? (4认同)

Hal*_*oum 42

你必须android:screenOrientation="portrait"在你的指令中添加指令AndroidManifest.xml.这将在您的<activity>标签中完成.

此外,Android开发者指南指出:

[...]您还应明确声明您的应用程序要求使用元素的纵向或横向方向.例如,<uses-feature android:name="android.hardware.screen.portrait" />.

  • 良好做法报价+1,因为这应该是接受的答案,因为它是正确的并且首先发布... (6认同)
  • 有全球方式吗? (5认同)

Rad*_*scu 15

我可以看到你已经接受了一个完全无法解决问题的答案:

android:screenOrientation="portrait" 
Run Code Online (Sandbox Code Playgroud)

这会强制您的应用在手机和平​​板电脑上都是肖像.

您可以使用在应用程序的"首选"方向强制应用程序

android:screenOrientation="nosensor"
Run Code Online (Sandbox Code Playgroud)

这将导致您的应用程序在大多数手机手机和平板电脑上的风景画像强制.有许多带键盘的手机专为横向模式设计.强制您的应用程序为肖像可以使它几乎无法在此类设备上使用.Android最近也迁移到其他类型的设备.最好让设备选择首选方向.


Bha*_*ara 12

它可能是......您必须通过编程方式识别它是平板电脑还是手机......

if(isTablet)
{
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);      
}else
{
      setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
Run Code Online (Sandbox Code Playgroud)