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


当前回答

只需在活动标记中添加此属性。

 android:screenOrientation="portrait"

其他回答

Use:

android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait" 

如果你不想经历在每个活动清单条目中添加方向的麻烦,创建一个BaseActivity类(继承' activity '或'AppCompatActivity'),它将被你的应用程序的每个活动继承,而不是' activity '或'AppCompatActivity',只需在你的BaseActivity中添加以下代码段:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    // rest of your code......
}

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

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>

在你的manifest中添加android:screenOrientation="portrait"。如果您想为特定的活动应用模式,请在所需的活动标记中定义此模式。或者在应用程序标签中定义整个应用程序。比如:

<application
    <!-- ... -->
    android:screenOrientation="portrait"
</application>

如果你想禁用Android应用程序(或单个活动)的横向模式,你需要做的就是添加:

android:screenOrientation="portrait"到AndroidManifest.xml文件中的活动标签。

如:

<activity 
    android:name="YourActivityName"
    android:icon="@drawable/ic_launcher"
    android:label="Your App Name"
    android:screenOrientation="portrait">

另一种方法:程序化方法。

如果您希望以编程方式完成此操作,即使用Java代码。您可以在不希望以横向模式显示的活动的Java类中添加以下代码。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);