代码之家  ›  专栏  ›  技术社区  ›  msqar

不强制纵向模式

  •  0
  • msqar  · 技术社区  · 5 年前

    我试图强制肖像只对我的RN应用程序的Android,但无论我尝试,我不能使它工作。

    问题是当我设置自动旋转时:在我的华为设备上,它是一个P20Lite。似乎“肖像”并没有覆盖设备的传感器。当,根据文件,这应该发生,如果你想它不覆盖传感器,建议使用usergrait代替。但我需要覆盖和锁定我的屏幕是肖像无论什么。

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.myapp">
    
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    
        <application
          android:name=".MainApplication"
          android:label="@string/app_name"
          android:icon="@mipmap/ic_launcher"
          android:allowBackup="false"
          android:usesCleartextTraffic="true"
          android:networkSecurityConfig="@xml/network_security_config"
          android:theme="@style/AppTheme"
          tools:ignore="LockedOrientationActivity" // <---- HERE
          >
    
          <meta-data android:name="com.facebook.sdk.ApplicationId"
                android:value="@string/facebook_app_id"/>
    
          <service android:name="io.invertase.firebase.messaging.RNFirebaseMessagingService">
            <intent-filter>
              <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
          </service>
    
          <activity android:name="com.facebook.FacebookActivity"
                android:configChanges=
                    "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
                android:label="@string/app_name" />
          <activity
                android:name="com.facebook.CustomTabActivity"
                android:exported="true">
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.BROWSABLE" />
                    <data android:scheme="@string/fb_login_protocol_scheme" />
                </intent-filter>
          </activity>
    
          <activity
            android:name=".SlashActivity"
            android:theme="@style/SplashTheme"
            android:label="@string/app_name"
            >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
          </activity>
    
          <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop"
            android:screenOrientation="portrait"   // <---- HERE
            android:configChanges="orientation|keyboard|keyboardHidden|screenSize" // <---- HERE
            android:windowSoftInputMode="adjustResize"
            android:exported="true"
            >
          </activity>
          <activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
        </application>
    </manifest>
    
    

    甚至试着把它放在主活动.java:

    package com.myapp;
    import android.content.pm.ActivityInfo;
    import android.os.Bundle;
    
    import com.reactnativenavigation.NavigationActivity;
    import org.devio.rn.splashscreen.SplashScreen;
    
    public class MainActivity extends NavigationActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            SplashScreen.show(this);
    
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // <--- HERE
            super.onCreate(savedInstanceState);
        }
    }
    

    谢谢。

    0 回复  |  直到 5 年前