studio rotar rotacion para pantalla orientacion mejor horizontal grados giratoria girar forzar como app android react-native react-native-android

android - rotar - pantalla giratoria apk



¿Cómo deshabilitar el modo horizontal en el modo de desarrollo React Native Android? (7)

Actualización 2017

Además de las soluciones publicadas anteriormente si está utilizando Expo para construir su aplicación (como se recomienda actualmente en las guías oficiales en React Native Blog ), todo lo que necesita es establecer la orientation en app.json para "vertical" u "horizontal" y haga que funcione en iOS y Android al mismo tiempo sin necesidad de editar archivos de configuración XML específicos de iOS / Android:

"orientation": "portrait"

Ejemplo:

{ "expo": { "name": "My app", "slug": "my-app", "sdkVersion": "21.0.0", "privacy": "public", "orientation": "portrait" } }

También puede usar esto en tiempo de ejecución:

ScreenOrientation.allow()

Ejemplo:

ScreenOrientation.allow(ScreenOrientation.Orientation.PORTRAIT);

Más detalles:

Para obtener más información, consulte: ¿cómo deshabilitar la rotación en React Native?

Soy nuevo en el entorno de Android. Sé que iOS se puede hacer en Xcode para deshabilitar la orientación del dispositivo. ¿Cómo puedo desactivar el modo horizontal o cualquier modo de orientación en React Native Android?

Gracias.


Agregue android:screenOrientation="portrait" a la sección de activity en el archivo android/app/src/main/AndroidManifest.xml , para que termine así:

<activity android:name=".Activity" android:label="Activity" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation|screenSize"> </activity>

Hay varios valores diferentes para android:screenOrientation propiedad android:screenOrientation ; Para obtener una lista completa, consulte lo siguiente: https://developer.android.com/guide/topics/manifest/activity-element.html


Como @ morenoh149 declaró anteriormente, el nombre y el valor de la propiedad para hacer esto es android: screenOrientation = "portrait". React Native genera un archivo llamado AndroidManifest.xml en el directorio de su proyecto en la carpeta de Android. Dentro de ese archivo xml bajo la etiqueta manifiesto / aplicación / actividad, agregaría la línea android: screenOrientation = "portrait"

A continuación se muestra un ejemplo.

<uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> <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>


El comentario de Harry Moreno es correcto. Agréguelo a android / app / src / main / AndroidManifest.xml en la sección ''actividad''. También cambiar

android:configChanges="keyboard|keyboardHidden|orientation|screenSize"

a android:configChanges="keyboard|keyboardHidden|screenSize"

eliminando la orientación para que no entre en conflicto con la nueva línea agregada, android:screenOrientation="portrait"


La respuesta aceptada no funciona si está utilizando react-native-navigation . Use esto en su lugar:

public class MyApplication extends Application{ @Override public void onCreate() { super.onCreate(); registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { @Override public void onActivityCreated(Activity activity, Bundle bundle) { // Here we specify to force portrait at each start of any Activity activity.setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } @Override public void onActivityStarted(Activity activity) { } @Override public void onActivityResumed(Activity activity) { } @Override public void onActivityPaused(Activity activity) { } @Override public void onActivityStopped(Activity activity) { } @Override public void onActivitySaveInstanceState(Activity activity, Bundle bundle) { } @Override public void onActivityDestroyed(Activity activity) { } }); }

Consulta los documentos here .


Puede simplemente la lógica agregando una devolución de llamada de ciclo de vida en la clase ReactApplication :

Navigation.setDefaultOptions({ layout: { orientation: ["portrait"], }, });

Por lo tanto, no necesita configurar AndroidManifest