2010-10-29 25 views
6

Quiero cambiar el diseño sin llamar al método onCreate. También defino android: configChanges = "orientation | keyboardHidden" en mi actividad y no está llamando al método onCreate pero el diseño no se ajusta apropiadamente en modo horizontal.cambiar la orientación sin onCreate call

mi diseño actual es el siguiente.

alt text

después de la orientación cambio como el paisaje que se vea como la siguiente: alt text

pero en el paisaje Quiero que el siguiente resultado.

alt text

¿hay alguna propiedad adyacente de auto?

¿cómo puedo hacerlo?

+0

¿Quiere tener su aplicación en modo horizontal por defecto o lo que usted está intentando exactamente? –

Respuesta

0

Supongo que está utilizando LinearLayout, porque no especificó, pero hay una función en la clase LinearLayout llamada setOrientation() que debería solucionarlo. Tendrá que crear una instancia de su diseño en su archivo java (que ya puede haber hecho) y luego crear un detector de eventos de cambio de orientación o de cambio de tamaño en su ventana. Después de eso, solo está cambiando la orientación a horizontal/vertical en función de la orientación de la pantalla.

+0

estoy usando TableLayout. es esto posible en el diseño lineal. –

+0

si es posible a través de LinearLayout, por favor proporcione el código de muestra. –

+0

sí, es fácil de usar LinearLayout, puede encontrar el código fuente en cualquier lugar –

4

no hay propiedad de ajuste automático mientras la vista cambia de vertical a horizontal.

Para las imágenes que desea visualizar en el modo horizontal

Crear un archivo nombredearchivo.xml y diseñar su diseño para el modo horizontal. Proporcione el nombre de archivo igual que su archivo xml anterior en la carpeta de diseño que está utilizando para la actividad.

Crear carpeta en res/layout-nombre como la tierra y luego mantener ese archivo nombredearchivo.xml en carpeta res/layout-tierra

llamará automáticamente que res/layout-tierra/Filename.xml cuando los cambios de orientación de retrato a paisaje.

O también se puede utilizar

@Override 
    public void onConfigurationChanged(Configuration newConfig) { 

     super.onConfigurationChanged(newConfig); 

     if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { 
      //your code 
     } else if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
     //your code 
     } 
    } 
1

Se podría añadir a android:configChanges="orientation" de etiquetas de actividad en AndroidManifest.xml. Pruébalo.

0

Solo pone este android: configChanges = "orientation | keyboardHidden" en su etiqueta de actividad en android manifest.it funciona.

0

Ponga esto en su hermano manifiesta ..

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

Es a resolver su problema y mi: D

Cuestiones relacionadas