Android: diseño alternativo xml para modo horizontal

Respuestas:

217

De forma predeterminada, los diseños /res/layoutse aplican tanto en vertical como en horizontal.

Si tienes por ejemplo

/res/layout/main.xml

puede agregar una nueva carpeta /res/layout-land, copiarla main.xmly hacer los ajustes necesarios.

orientación

Consulte también http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts y http://www.devx.com/wireless/Article/40792/1954 para obtener más opciones.

marapet
fuente
1
debería tener que mantener el nombre de diseño de la tierra o cualquier otra palabra @marapet
Vamsi Pavan Mahesh
9
No puedes usar ninguna otra palabra
Foo
Mi imagen de fondo se extiende sobre el paisaje. Tengo tierra de diseño y tierra dibujable ... aún así se extiende ... He intentado usar la misma imagen, imágenes de 9 parches, mdpi, hdpi n all ... aún persiste el problema :(
Prabs
cuál es la palabra paraportrait
dsdsdsdsd
@dsdsdsdsd según el estudio de Android, es un puerto de diseño
Gregzenegair
76

En la versión actual de Android Studio (v1.0.2), simplemente puede agregar un diseño horizontal haciendo clic en el botón en el editor visual que se muestra en la captura de pantalla a continuación. Seleccione "Crear variación de paisaje"

Android Studio agrega diseño horizontal

Reefwing
fuente
Excepto que pone una nueva copia en su layout-landcarpeta. ¿Alguna idea de cómo llamar a un diseño desde allí? No se puede usar R.layout.layout_name. Estoy tratando de configurar mis propios diseños manualmente después del cambio de configuración, gracias.
Azurespot
2
@NoniA. Debería detectar cuándo el teléfono cambia a horizontal y llamar al que está desde el plano de distribución automáticamente.
Distwo
43

Los diseños en / res / layout se aplican tanto en vertical como en horizontal, a menos que especifique lo contrario. Supongamos que tenemos /res/layout/home.xml para nuestra página de inicio y queremos que tenga un aspecto diferente en los 2 tipos de diseño.

  1. crear carpeta / res / layout-land (aquí mantendrá sus diseños ajustados al paisaje)
  2. copia home.xml allí
  3. hacer los cambios necesarios

Fuente

Dalmas
fuente
¿Qué hay de 'retrato'?
dsdsdsdsd
¿Qué pasa con los nuevos calificadores <sw>?
Ruchir Baronia
6

La forma más rápida para Android Studio 3.xx y Android Studio 4.xx

1.Vaya a la pestaña de diseño del diseño de la actividad.

2.En la parte superior, debe presionar el botón de orientación para vista previa , hay una opción para crear un diseño horizontal (verificar imagen), se creará una nueva carpeta como su archivo de diseño xml para esa orientación particular

ingrese la descripción de la imagen aquí

Shid
fuente
2

Puede agrupar su diseño específico en la estructura de carpetas correcta de la siguiente manera.

layout-land-target_version

es decir

layout-land-19 // objetivo KitKat

Del mismo modo, puede crear sus diseños.

Espero que esto te ayudará

Umanda
fuente
Gracias por responder, pero no veo cómo su respuesta ayuda porque esta pregunta ya fue respondida. ¿Quizás podrías explicar el beneficio del -19sufijo? ¿Es útil de alguna manera?
Bryan Field el
0

Trataré de explicarlo en breve.

Primero, puede notar que ahora debe usar ConstraintLayout como lo solicitó google (consulte la biblioteca androix).

En su proyecto de estudio de Android, puede proporcionar diseños específicos de pantalla mediante la creación de res / layout / directorios adicionales. Uno para cada configuración de pantalla que requiere un diseño diferente.

Esto significa que debe usar el calificador de directorio en ambos casos:

  • Soporte para dispositivos Android
  • Modo horizontal o vertical de Android

Como resultado, aquí hay un ejemplo:

res/layout/main_activity.xml                # For handsets
res/layout-land/main_activity.xml           # For handsets in landscape
res/layout-sw600dp/main_activity.xml        # For 7” tablets
res/layout-sw600dp-land/main_activity.xml   # For 7” tablets in landscape

También puede usar el calificador con archivos de recursos de recursos utilizando dimens.xml.

res/values/dimens.xml                # For handsets
res/values-land/dimens.xml           # For handsets in landscape
res/values-sw600dp/dimens.xml        # For 7” tablets

res / values ​​/ dimens.xml

<resources>
    <dimen name="grid_view_item_height">70dp</dimen>
</resources>

res / values-land / dimens.xml

<resources>
    <dimen name="grid_view_item_height">150dp</dimen>
</resources>

your_item_grid_or_list_layout.xml

<androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content

    <ImageView
            android:id="@+id/image"
            android:layout_width="0dp"
            android:layout_height="@dimen/grid_view_item_height"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:background="@drawable/border"
            android:src="@drawable/ic_menu_slideshow">

</androidx.constraintlayout.widget.ConstraintLayout>

Fuente: https://developer.android.com/training/multiscreen/screensizes

Zhar
fuente