¿Cómo especifico diferentes diseños para orientaciones de retratos y paisajes?
-
22-09-2019 - |
Pregunta
He visto referencias a poder especificar dos archivos XML de diseño separados para una actividad, uno para retrato y otro para el paisaje. 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 del paisaje?
¿También es posible especificar diferentes diseños para diferentes tamaños de pantalla? Si es así, ¿cómo se hace?
Solución
Crear un layout-land
directorio y coloque la versión de paisaje de su archivo XML de diseño en ese directorio.
Otros consejos
Solo tiene que colocarlo en carpetas separadas con diferentes nombres dependiendo de la orientación y la resolución, el dispositivo seleccionará automáticamente el correcto para su configuración de pantalla
Más información aquí:
http://developer.android.com/guide/practices/screens_support.html
En "Calificadores de directorio de recursos para el tamaño y la densidad de la pantalla"
¡Para los amantes del ratón! Digo que haga clic derecho en la carpeta de recursos y Add new resource file
, y de los calificadores disponibles seleccionan el orientation
:
Pero aún puedes hacerlo manualmente, por ejemplo, agregando la "tierra de diseño" de subfoldismo a
"Su proyecto-directorio app src main res"
Desde entonces, cualquier archivo LEYOUT.XML bajo este subcarpelo solo funcionará para el modo de paisaje automáticamente.
Use "Layout-Port" para el modo de retrato.
Simplemente un recordatorio:
Remover orientation
de android:configChanges
atributo para la actividad en tu manifiesto xml
Archivo si lo definió:
android:configChanges="orientation|screenLayout|screenSize"
Crear un nuevo directorio layout-land
, luego crear xml
Archivo con el mismo nombre en layout-land
como era layout
Directorio y alinee allí su contenido para el modo de paisaje.
Tenga en cuenta que la identificación de contenido en ambos xml
es igual.
O usar 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>
Creo que la forma más fácil en las últimas versiones de Android es ir al modo de diseño de un XML (no texto).
Luego, en el menú, seleccione la opción: cree una variación del paisaje. Esto creará un XML de paisaje sin problemas en unos segundos. La última versión de Android Studio le permite crear una vista de paisaje de inmediato.
Espero que esto funcione para usted.
La última línea a continuación es un ejemplo para aplicar dos cuantificadores: paisaje y ancho más pequeño(600dp) Pantalla. Actualice 600DP con los que necesita.
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
Lo anterior se aplica a Dimens también
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-sw600dp-land/dimens.xml # For 7” tablets in landscape
Una útil dispositivos Métricas: https://material.io/tools/devices/
- Haga clic derecho en la carpeta Res,
- Nuevo -> archivo de recursos de Android
- En los clasificatorios disponibles, Seleccione Orientación,
- Agregar al calificador elegido
- En la orientación de la pantalla, seleccione el paisaje
- presiona OK
Uso de Android Studio 3.4.1, ya no se crea layout-land
carpeta. Creará una carpeta y juntará dos archivos de diseño.
La forma más rápida para Android Studio 3.xx
1. Vaya a la pestaña de diseño del diseño de actividad
2. En la parte superior que debe presionar en la orientación para el botón Vista previa, hay una opción para crear un diseño de paisaje (verificar la imagen), se creará una nueva carpeta como su archivo de diseño XML para esa orientación particular