/ / Разпределение на двупосочния интерфейс: Защо? - Android, wpf, silverlight, потребителски интерфейс, оформление

Двупропускащо потребителско оформление: Защо? - Android, wpf, silverlight, потребителски интерфейс, оформление

Забелязах, че Android, WPF и Silverlightвсички следват схема на оформление с две стъпки. Има рекурсивен метод на Measure (), който се получава, за да се размества елементът, вероятно няколко пъти. След това се извиква рекурсивен метод Layout / Arrange (), който определя точните позиции на децата в родителския контрол и също така определя окончателния размера на контрола.

Въпросът ми: защо това се разделя на два прохода, особено когато за някои видове контрол, Measure () не може да изчисли действителния размер на контрола, без всъщност да постави позициите на децата? Има ли някакъв вид малцинствен случай на оформлението, който е това стана възможно?

Опитвам се да създам свой собствен инструментариум за потребителски интерфейс и в момента се навеждам към модела на оформлението на един пропуск, но бих искал да бъда убеден дали това е мъдро или не.

Благодаря, че четете това :)

Шон

Отговори:

11 за отговор № 1

Причината за двата пропуски е, че всеки елемент в структурата може да повлияе върху оставащото свободно пространство на останалите.

Някои елементи искат да се възползват максимално от възможносттапространство, докато други имат фиксирани размери. Можете също да имате елементи само с максимална ширина. Той създава уравнение, което не може да бъде решено с едно преминаване.

Различните панели в йерархията искаткакви размери се нуждаят в първия пропуск, разпределят пространството помежду им според естеството на всеки панел и накрая информира всеки елемент от разпределеното му пространство.

EDIT: Още няколко обяснения

Основният недостатък на оформлението на един проход е товаВие обработвате всеки елемент последователно. Първият елемент отнема известно пространство, а останалите вземат останалото. Защо този елемент е първият? Изпробвайте алгоритъма си с различна реда на елементите и ще имате различно оформление.

Двупътното оформление симулира паралелно поведение, при което всеки елемент влияе върху цялостното оформление.