![]() |
MVC:Подмена вьюшек
Всем привет. Подскажите, как организовывается разный вид интерфейса программы.
имеем набор видов:обычный, полный экран, вид удобный для горизонтального просмотра, вертикального, мини-вид... соответсвенно вид меняется (координаты гуишек, размеры и тп). Если я верно понимаю, то проще исопльзовать под каждый вид отдельный набор вьюшек. Вопрос - как (какой класс) должен организовать реалтайм удаление и подстановку новых инстансов. Или может посоветуете чего сопутствуещего. Спасибо ЗЫ юзаю роботлегс |
Я пишу посредник - медиатор между вьюшкой и контроллером. В любой момент вьюшка может поменяться, но никто ничего не заметит, т.к. все работают с медиатором.
|
Не знаю, как это может быть решено в роботлегс. Но, я бы организовал вьюшку в виде контейнера и по команде модели заменял бы поставляемые ею же (моделью) "морды"...
|
Цитата:
|
спасибо за ответы! :drinks:
Цитата:
Еще вопрос, в то время как юзер переключает виды, вьюшки уже имеют определенный вид (чекбоксы, стринги, состояния кнопок...), чтобы вновь рожденная вьюшка сразу приняла нужный вид, нужно использовать "хранитель" ? |
Цитата:
|
ага он самый, спасибо!
|
Цитата:
А роботлегс да, там как раз архитектура под это заточена. Там пачка вьюшек и медиатор сразу в ядре фреймворка вшиты, остается только юзать согласно мануалов ;) |
Цитата:
|
Ну пропорции экрана например вьюха может вычислить из размеров стейджа. Кординаты элементов точно так же можно вычислить динамически (я собственно практически всегда так и делаю в методе render()).
А в модель напихать там что-то типа размеров шрифтов, цвета кнопок, состав элементов (на маленьких экранах к примеру может быть что-то спрятано, или какое-то окошко просмотра чего-то сжато в маленькую кнопочку). |
круто! у меня даже есть для этого моделька SetupModel
|
Цитата:
|
так а нахрена мне положение курсора то хранить где-то???
|
вот и разобрались ( :
часть стейта будем брать из модели, а часть из хранителя. А хранитель четко для одного объекта, или можно сделать один на всех ( = Добавлено через 1 минуту Цитата:
|
Цитата:
Так вот, коллега, Вам, как разработчику может и боком не уперлось сохранять фокус ввода, положение курсора и т.п. параметры. Но меня, как пользователя, это наплевание на меня откровенно раздражает. Добавлено через 1 минуту Цитата:
|
Я не имел в виду такую вот клинику из примеров)))
Просто вот такие вещи на тему "перевернул планшет" - я реализовываю без всяких там подмен вьюх, это просто динамическое перепозиционирование объектов. И тут очевидно что всё как было так и должно остаться. А если речь идет именно о подмене вьюх как в теме - то тут не вижу смысла заморачиваться с этим. Так как по сути: а) там где такие тонкости нужны там как правило можно обойтись одной вьюхой, просто что-то куда-то подвинуть при изменениях б) там где действительно нужно много вьюх - как правило не нужно так дотошно хранить все состояния. |
Цитата:
Однако, это действительно не удобный вариант, если речь идет о "смене вида на ходу". Какое дело модели до того как вьюха выглядит? Вероятно "хранитель" - самое лучшее решение. |
я еще о "стратегиях" думал... типа вьюшке передается объект стратегии расположения и делается например redraw();
|
| Часовой пояс GMT +4, время: 14:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.