Android de paisaje a retrato no carga pantallas cuando cambia la orientación

Creé diseños para pantallas grandes tanto para retrato como para paisaje, y tengo un signin.xml en ambos diseños, pero cuando cambio la orientación de la pantalla, no carga el xml horizontal, sino que cambia al modo horizontal pero el xml vertical es sido cargado. También mencioné los cambios de onconfig en el manifiesto, y hágame saber cómo guardar datos cuando la orientación cambió y muéstreme algún ejemplo.

A continuación se muestra mi código Java

              public void onConfigurationChanged(Configuration newConfig) {
          super.onConfigurationChanged(newConfig);

               Display display = ((WindowManager)       getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
            int   orientation = display.getOrientation(); 
            boolean oAllow = false;
            switch(orientation) {
            case Configuration.ORIENTATION_PORTRAIT:
            if(!oAllow ) {
                    setRequestedOrientation    (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

            }
            break;
        case Configuration.ORIENTATION_LANDSCAPE:
            if(!oAllow) {
                    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            }
            break;
    }
      }

¿Cómo puedo obtener mi vista horizontal cuando cambio de paisaje a retrato a paisaje?

por favor ¿Alguna sugerencia? Gracias de antemano

preguntado el 22 de mayo de 12 a las 07:05

Creo que realmente necesita leer el documento del desarrollador. Solo debe definir el archivo de diseño en una carpeta de recursos diferente. -

He agregado sigin.xml tanto en diseño-tierra como en diseño-retrato -

así que elimine el código onConfigurationChanged(). -

2 Respuestas

¿Es su diseño de carpeta xml de retrato o diseño-retrato? Si se trata de un diseño de retrato, no lo declare así. Simplemente cree la carpeta de 'diseño' predeterminada, el sistema operativo buscará el xml cuando la orientación sea vertical.

A continuación, comente el código anterior en java y declare en androidmanifest.xml, android:configChanges="keyboardHidden|orientation" delante de su declaración de actividad y pruebe si funciona.

contestado el 22 de mayo de 12 a las 08:05

Estoy desarrollando estos para tableta. He creado dos diseños de tierra grande: Nikhil Virupakshi

amigo, entonces para la tableta deberías tener diseño-grande (vertical) y diseño-grande-tierra para paisaje. Haz la corrección. o Pruebe layout-xlarge(portriat) & layout-xlarge-land(landscape) - Rashmi.B

muchas gracias, ahora funciona bien... pero quiero saber cómo puedo guardar mis datos de vista de lista. - Nikhil Virupakshi

Tuve un problema similar, la solución fue en realidad eliminar "screenSize" de Android: configChanges en mi manifiesto. Por alguna razón, esto se aplicó de manera predeterminada cuando creé mis actividades: android:configChanges="keyboardHidden|orientation|screenSize" cambiándolo a: android:configChanges="keyboardHidden|orientation" Resuelto el problema: Sverrir Sigmundarson

¿Por qué exactamente estás anulando onconfigchanges? Esto podría ser lo que estropea tu diseño. Android puede manejar los cambios de diseño cuando tiene un diseño y una carpeta de diseño-tierra que contiene sus diseños.

contestado el 22 de mayo de 12 a las 07:05

por lo que dice que necesita eliminar los cambios de configuración, aún así no está cargando la pantalla cuando cambió la orientación ... está cargando la misma pantalla en modo horizontal - Nikhil Virupakshi

¿Qué pasa si eliminas -retrato? simplemente deje un diseño y una carpeta de diseño-tierra? En algún lugar algo salió mal... se supone que Android manejará esto automáticamente - Wottah

muchas gracias, ahora funciona bien... pero quiero saber cómo puedo guardar mis datos de vista de lista. - Nikhil Virupakshi

Recomiendo almacenar sus datos en un servicio y llamar a un método para llenar su tabla en su método onStart(). - Wottah

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.