Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Cómo se bloquea la orientación de la aplicación (horizontal o vertical)?

He intentado congelar la orientación usando:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

Aunque la pantalla permanezca en orientación vertical, la actividad sigue siendo recreada. ¿Alguna idea de como resolver esto?

  • ¿Cuántas columnas de base de datos asociadas a un SMS en android?
  • ¿Qué es "android.R.layout.simple_list_item_1"?
  • Cómo obtener un valor aleatorio de una matriz de cadenas en android?
  • Actividad de Android sobre la pantalla de bloqueo predeterminada
  • Android Studio publica una biblioteca local
  • Using notifyItemRemoved o notifyDataSetChanged con RecyclerView en Android
  • ¿Cómo se puede bloquear la orientación de la aplicación de modo que la actividad no se recrea en el cambio de orientación?

  • Valor igual a match_parent o fill_parent en dimens.xml?
  • Obtener la lista de todos los usuarios conectados mediante wifi tethering en android
  • Cambiar el valor de la casilla de verificación sin activar onCheckChanged
  • InflateException: No se pudo resolver el elemento de menú onClick handler
  • AdjustPan no impide que el teclado cubra EditText
  • ¿Los procesos de VM de Dalvik liberan la RAM del sistema?
  • 4 Solutions collect form web for “¿Cómo se bloquea la orientación de la aplicación (horizontal o vertical)?”

    Primero, no use setRequestedOrientation() si puede evitarlo. Utilice el atributo android:screenOrientation en su elemento de manifiesto <activity> .

    En segundo lugar, también necesitará android:configChanges="keyboardHidden|orientation" en su elemento de manifiesto <activity> para evitar el ciclo de destruir / recrear.

    Un ejemplo más específico de la sección de actividades de AndroidManifest.xml para la orientación vertical:

      <activity android:name=".MainActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:configChanges="keyboardHidden|orientation|screenSize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

    Donde android:screenOrientation establece la orientación inicial y android:configChanges anula los eventos que android:configChanges los métodos de ciclo de vida correspondientes en los cambios de pantalla.

    Prueba esto:

    1.- Establezca la orientación de la pantalla en su AndroidManifest.xml

     android:screenOrientation="portrait|landscape" 

    Debe tener un aspecto como este:

      <application android:allowBackup="true" android:icon="~icon path~" android:label="~name~" android:supportsRtl="true" android:screenOrientation="portrait" android:theme="@style/AppTheme"> </application> 

    2.- Añada esto a su onCreate void (o donde quiera) en su archivo de actividad java (Ejemplo: "MainActivity.java"):

     super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED); 

    Debe tener un aspecto como este:

     protected void onCreate(Bundle savedInstanceState) { super.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);} 

    Ahora la pantalla no se moverá aunque la rotación de pantalla esté activada en el dispositivo.

    La mejor solución es usar la instancia guardada. Si está bloqueando la orientación de la pantalla, significa que está forzando al usuario a usar la aplicación de acuerdo con las restricciones establecidas por usted. Así que siempre use onSaveInstanceState. Lea este enlace: http://developer.android.com/training/basics/activity-lifecycle/recreating.html

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.