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
http://developer.android.com/guide/topics/manifest/activity-element.html
agregue
android:screenOrientation="portrait"
a su actividad xml