Pregunta

Tengo una situación en la que saco un recolector de color. Si se hace en modo de retrato, todo está bien. Pero si lo hago en modo paisajista (el diálogo no se ajusta en la pantalla) parece estar explotando al intentar inflar el diseño.

¿Hay alguna forma especial de hacer esto en modo paisajista donde la vista no encaja por completo en la pantalla?

¿Alguna diferencia que deba tener en cuenta que no sean bienes inmuebles de pantalla?

¿Fue útil?

Solución

Craiga,

Después de leer sus comentarios, parece que hay un malentendido sobre la forma en que se generan diferentes anchos y alturas en XML. Este es un concepto erróneo común al principio. Entonces, lo que debe entender aquí es que el ancho de los diversos objetos, aunque dinámicos, imponen diferentes comportamientos en sus objetos.

LEING_WIDTH/LEDOUT_HEight Generalmente

Los parámetros de ancho y altura no afectan el actual ancho y altura del objeto. Afectan el ancho y la altura de la pantalla. Esto significa que puede establecer el ancho y la altura en más pequeños que el contenido, y el contenido aún será accesible al desplazarse, si son más grandes que el contenedor.

Dado que muchas opiniones de los niños toman sus señales de las opiniones de los padres, esto puede resultar en un comportamiento como lo está viendo anteriormente. El truco aquí es primero comprender lo que está sucediendo y luego compensar el comportamiento del sistema.

Match_parent/fill_parent

Por lo general, esto significa que la vista actual obtendrá su tamaño de los padres. Si la vista es una vista de nivel superior, el comportamiento cambia ligeramente. Si esta es la vista de nivel superior de un diálogo, entonces será el tamaño de la pantalla o el tamaño del contenido (lo que sea menor). Si la vista es la vista de nivel superior de una actividad, entonces los resultados son los mismos, pero ellos Mira diferente. Es decir, tendrá la opacidad y el fondo de la actividad completa, pero el tamaño de la vista es solo el de los contenidos o el tamaño de la pantalla (lo que sea más pequeño). Los tamaños de los niños no se ven afectados a menos que su ancho/altura se base en el de este punto de vista.

resumir contenido

En este caso, la altura de la pantalla se basa en las alturas de visualización de todos los niños inmediatos. Este comportamiento cae en cascada a los descendientes "más jóvenes" hasta que la jerarquía usa algo más que wrap_content.

Tu problema (como parece ahora)

Su vista de nivel superior utiliza WRAP_CONTENT, por lo que el tamaño de la pantalla se basará en todos los tamaños de pantalla de los niños. En este caso, podría ser mejor usar match_parent' orFill_parent` (depende de su API) solo para su vista de nivel superior. Esto al menos hará que el diálogo sea el tamaño apropiado, si no el contenido. Para aquellos controles cuyo tamaño se basa en la vista de nivel superior, entrarán en línea. Aquellos que no sean tendrán que ajustarse manualmente.

Ahora, la decisión que tiene que tomar aquí es la implementación. ¿Necesita ajustar los tamaños para cada pantalla, o solo el paisaje? Si sus cambios no tienen efecto sobre la pantalla de retrato, entonces un archivo debe ser bueno. Si no, querrá un archivo de diseño para el retrato (el actual) y luego uno ajustado para el modo de paisaje.

Si está utilizando dos archivos, tendrá una carpeta nombrada layout_port para que el actual se almacene. Agregará una carpeta llamada layout_land para el ajustado. Serán del mismo nombre, recién alojados en las carpetas separadas.

Espero que esto ayude,

Fuzzicallógico

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top