Pregunta

Quiero hacer posible el uso de una actividad en paisaje / retrato. La actividad comienza con el diseño de la orientación actual (es decir, antes de comenzar la actividad). Después de eso, debe ceñirse a él y no reaccionar al cambio de orientación.

Intenté poner

android:configChanges="orientation" 

en el manifiesto de la actividad y anulando

@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
}

no hacer nada (también intenté comentar la súper llamada, pero esto dio lugar a una excepción) pero esto no tiene el efecto de deshabilitar el cambio de rotación: el cambio se procesa y el diseño se reconstruye, simplemente no usa el correcto.

Y no puedo usar

android:screenOrientation

Porque parece que tengo que especificar solo un modo para siempre, y eso tampoco es lo que necesito. Y de todos modos, si especifico algo allí, la actividad se reconstruye al rotar. Probado con

android:screenOrientation="nosensor"

eso no hace nada

Aquí hay un bloqueo de orientación actual con código http://www.samcoles.co.uk/ orientación-de-pantalla-de-bloqueo-y-desbloqueo-de-móvil / android /

Pero logra el mismo efecto que especificar la orientación en XML (mantiene el diseño pero reconstruye la actividad). Está un poco más cerca de lo que quiero (mantiene la orientación desde el principio), pero reconstruye la actividad y no quiero que reaccione en absoluto.

¿Fue útil?

Solución

android: configChanges="Orientación" no funciona en absoluto en el emulador, pero funciona bien en dispositivos.

Otros consejos

try

@Override
public void onConfigurationChanged(Configuration newConfig) {
    newConfig.orientation = getResources().getConfiguration().orientation;
    super.onConfigurationChanged(newConfig);
}

Añadir esto a onecreate

if (this.getResources().getConfiguration().orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}
        else {setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top