2010-01-23 23 views
115

He visto referencias para poder especificar dos archivos xml de diseño para una actividad, una para Portrait y otra para Landscape. Sin embargo, no he encontrado ninguna información sobre cómo hacerlo. ¿Cómo especifico para cada actividad qué archivo xml es su diseño de retrato y cuál es el diseño de Paisaje?¿Cómo especifico diferentes diseños para las orientaciones vertical y horizontal?

¿También es posible especificar diferentes diseños para diferentes tamaños de pantalla? Si es así, ¿cómo se hace?

Respuesta

169

Cree un directorio layout-land y coloque la versión horizontal del archivo XML de diseño en ese directorio.

+2

¿Eso significa que todas las actividades necesitan definir tanto una vista de paisaje como una de retrato si hago esto? –

+13

No, si no existe una definición de disposición de terreno, solo utiliza el diseño XML en el directorio de diseño estándar. –

+0

en mi caso, layout-land no funciona cuando estoy usando, android: configChanges = "orientation | keyboardHidden | screenSize" –

58

Sólo tienes que ponerlo en carpetas separadas con diferentes nombres dependiendo de la orientación y de la resolución, el dispositivo seleccionará automáticamente el más adecuado para su configuración de pantalla

Más información aquí:

http://developer.android.com/guide/practices/screens_support.html

bajo "calificadores directorio de recursos para el tamaño de pantalla y la densidad"

+0

Solo funciona para las versiones de sistema operativo 1.6 o superior. Si desea soportar 1.5, necesita este enlace: http://developer.android.com/guide/practices/screens-support-1.5.html –

+2

@Silvio Donnini: los enlaces ya no tienen la información requerida. – itsaboutcode

+2

@itsaboutcode Sí lo hace: vaya a "Usar los calificadores de configuración" – Danation

2

O utilizar esto:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:scrollbars="vertical" 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent"> 

    <LinearLayout android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"> 

    <!-- Add your UI elements inside the inner most linear layout --> 

    </LinearLayout> 
</ScrollView> 
16

Sólo un recordatorio:

Retire orientation de android:configChanges atributo para la actividad en el archivo de manifiesto xml si ha definido que:

android:configChanges="orientation|screenLayout|screenSize" 
3

Crear un nuevo directorio layout-land, a continuación, crear xml archivo con el mismo nombre en layout-land ya que era el directorio layout y alinea allí su contenido para el modo Paisaje.

Tenga en cuenta que la identificación del contenido en ambos xml es la misma.

14

Para los amantes del ratón! mejor dicho botón derecho del ratón en la carpeta de recursos y añadir nuevo archivo de recursos, y desde calificadores disponibles seleccione la orientación:

enter image description here


Pero todavía puede hacerlo de forma manual por ejemplo, la adición de la subcarpeta " diseño-tierra" para

"Su-Proyecto-Dirección \ app \ src \ Main \ res"

desde entonces cualquier archivo layout.xml bajo esta subcarpeta sólo funcionará para el modo horizontal aut omáticamente.

Utilice "Layout-port" para el modo vertical.

Cuestiones relacionadas