Disposición de interfaz de usuario de dos pasos: ¿Por qué?
He notado que Android, WPF y Silverlight siguen un patrón de diseño de dos pasadas. Hay un método recursivo Measure () que se llama para dimensionar el elemento, posiblemente varias veces. A continuación, se llama un método recursivo Layout / Arrange () que establece las posiciones exactas de los niños en su control padre y también establecerá el tamaño final del control.
Mi pregunta: ¿por qué se divide esto en dos pases, especialmente cuando, para algunos tipos de controles, Measure () no puede calcular el tamaño real de un control sin establecer realmente las posiciones de los niños? ¿Hay algún tipo de caso de disposición minoritaria que sea posible por esto?
- ¿Cuál es la diferencia entre android: lineSpacingExtra y android: lineSpacingMultiplier?
- ¿Es posible fusionar stickylistviewheader con crisbanes pulltorefresh?
- Seleccionador de Popup de Android?
- ¿Cómo aplicar gradiente a la barra de estado en android?
- Android: cómo saber si se mantiene pulsado el botón
Estoy tratando de crear mi propio kit de herramientas de interfaz de usuario, y actualmente estoy inclinado hacia un diseño de un solo paso Layout (), pero me gustaría estar convencido de si esto es sabio o no.
Gracias por leer esto 🙂
Sean
- La inicialización de Android TextToSpeech bloquea / congela el subproceso de UI
- ¿Cómo puedo hacer que un botón responda mejor?
- Android Phone Call UI - Cambiar
- ¿Cómo puedo hacer que un TextView se desplace automáticamente al agregar más líneas de texto?
- Android: técnica para atenuar un campo de edición de texto
- IU distorsionada con Android
- Libgdx Scene2d - Set actor (TextField) de relleno?
- Cómo centrar el icono y el texto en un botón android con el ancho establecido en "fill parent"
La razón de los dos pasos es que cualquier elemento en la estructura puede influir en el espacio disponible restante de los otros.
Algunos elementos desean tomar el mayor espacio posible mientras que otros tienen dimensiones fijas. También puede tener elementos con sólo un ancho máximo definido. Crea una ecuación que no se puede resolver en un paso.
Los diferentes paneles de la jerarquía preguntan a los elementos qué tamaño necesitan en la primera pasada, luego distribuyen el espacio entre ellos de acuerdo a la naturaleza de cada panel y finalmente informan cada elemento de su espacio asignado.
EDIT: Más explicaciones
El principal inconveniente de un diseño de paso único es que se está manejando cada elemento secuencialmente. Un primer elemento toma una cierta cantidad de espacio y los otros toman el resto. ¿Por qué este elemento es el primero? Pruebe su algoritmo con diferentes orden de elementos, y tendrá diferentes diseños resultantes.
Un diseño de dos pasos simula un comportamiento paralelo en el que cada elemento influye en todo el diseño.
- Añadir indicador de carga / barra de progreso a Phonegap Pantalla de bienvenida de Android
- Uso del objetivo en Picasso en el adaptador