我如何禁用景观模式的一些观点在我的Android应用程序?


当前回答

把它写进你的载货单里。

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:screenOrientation="sensorPortrait" />

方向将是纵向的,但如果用户的手机是上下颠倒的,它也会显示正确的方式。(这样你的屏幕就会旋转180度。)


如果活动在多窗口模式下运行,系统将忽略此属性。

更多:https://developer.android.com/guide/topics/manifest/activity-element

其他回答

在AndroidManifest.xml文件中添加android:screenOrientation="portrait"。

例如:

<activity 
    android:name=".MapScreen"
    android:screenOrientation="portrait"></activity>

在阅读这篇文章之前,我不知道AndroidManifest.xml文件开关,所以在我的应用程序中,我使用了这个代替:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // Fixed portrait orientation

将以下命令添加到您的项目中,

npm install

npm i react-native-orientation-locker

然后你使用一个manifest类, React_Native(你的项目文件夹)/ android / app / src / main / AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.payroll_react">

  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

  <application
    android:name=".MainApplication"
    android:label="@string/app_name"
    android:icon="@mipmap/ic_launcher"
    android:allowBackup="false"
    android:theme="@style/AppTheme">
    <activity
      android:name=".MainActivity"
      android:label="@string/app_name"
      android:screenOrientation="landscape"
      android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
      android:windowSoftInputMode="adjustResize">
      <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
  </application>

</manifest>

在Kotlin中,同样可以使用下面的代码以编程方式实现:

requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT

添加android:screenOrientation="portrait"到你想禁用横向模式的活动中。