Перейти к содержанию
Fire Monkey от А до Я

Советы по созданию мобильного приложения Master-Detail


Рекомендуемые сообщения

У меня задача - при щелчке на строку в списке ListView, открыть дополнительное окно(?) или вкладку(?) Detail и там отредактировать значение, после редактирования вернуться в ListView. В моем случае редактироваться будет время. Как правильно спроектировать такое приложение? Какие еще есть правильные варианты открыть Detail кроме как щелкнуть по строке списка, может лучше чекбокс кликнуть? Хотелось бы спроектировать такое приложение для андроид, чтобы пользователю было удобно и просто.

Сам список программно готов и выглядит так:

post-132-0-69166900-1406645885.jpg

Ссылка на комментарий

Если у вас на клики по элементам ListView не будет больше никаких действий, то правильней будет если пользователь будет иметь возможность кликнуть в любую часть строки (для этого обработку клика надо делать всей строки, а элементам отключать HitTest). Галочек как и полос прокрутки на мобильных девайсах стоит по возможности избегать, по ним неудобно попадать. В качестве места для расположения редактора времени я бы предложил невидимую до нажатия панельку, это ускорит работу ибо не потребуются ресурсы на создания окна. Уточню, что я не в курсе как там дела именно на android-е, и можно ли там отрисовать панельку поверх других элементов формы. Но если можно это на мой взгляд лучший вариант. А область за панелькой просто затемнить в момент её появления, что бы сконцентрировать внимание пользователя на ней.
 

Ссылка на комментарий
  • Администраторы

Клик по итему

Как уже предыдущие пользователи правильно заметили, нажатие на итем в списке самый интуитивно понятный способ на мобильных платформах. По скольку это полностью совпадает с правилами построения пользовательского интерфейса на мобильных платформах.

  1. Не надо придумывать свои способы, когда уже есть стандартные. Этим вы только запутаете пользователя, привыкшего к общему принципу работы с любым приложением.
  2. Если вам такой способ нужен, то лучше перепроектируйте ваш интерфейс, чтобы этого избежать (смотрите пункт 1.)

Открытие нового вида

На счет этого, если вы делаете приложение под андроид, то я бы не рекомендовал для этих целей использовать TTabControl. По одной самой главной причине:

 

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

 

Легко представить типичную ситуацию, когда ваше приложение довольно большое и содержит большое число форм ввода и редактирования данных. Теперь представьте, что все эти контролы создаются при запуске приложения и живут все время существования приложения. Это совсем не маленькие размеры памяти, особенно на Андроиде.

 

Ресурсы мобильной платформа не равны ресурсам настольных платформ. И если на настольной системе вы можете особо не заморачиваться о размере потребляемой памяти, так как ее много. То на мобильнике это может привести к нехватке памяти и как следствие разрушение вашего приложения.

 

Главная идея - это иметь в каждый момент времени только то, что нужно. Поэтому я бы лучше рассматривал либо создание отдельной формы, либо создание в рантайме специального слоя (вида), которые будет загружен по верх всего, а потом будет разрушен после окончания выполнения редактирования.

 

Так же советую использовать фреймы для таких функционально законченных блоков (редакторы сущности):

  1. Позволяет быстро и удобно создавать в нужное время на мобильной платформе требуемый вид. Забирая от системы ресурсы только в тот момент, когда они действительно необходимы.
  2. Повторное использование в других местах приложения.
Изменено пользователем Brovin Yaroslav
Ссылка на комментарий

Спасибо, большое.

Еще такой вопрос по интерфейсу Master-Detail:

Вот тут демонстрация приложения созданного на Дельфи: https://www.youtube.com/watch?v=H37c-TjaFa8

Можно пошаговый урок, как создается такой мобильный интерфейс выдвижных панелек?

Ссылка на комментарий
  • 5 месяцев спустя...

 

Клик по итему

Как уже предыдущие пользователи правильно заметили, нажатие на итем в списке самый интуитивно понятный способ на мобильных платформах. По скольку это полностью совпадает с правилами построения пользовательского интерфейса на мобильных платформах.

  1. Не надо придумывать свои способы, когда уже есть стандартные. Этим вы только запутаете пользователя, привыкшего к общему принципу работы с любым приложением.
  2. Если вам такой способ нужен, то лучше перепроектируйте ваш интерфейс, чтобы этого избежать (смотрите пункт 1.)

Открытие нового вида

На счет этого, если вы делаете приложение под андроид, то я бы не рекомендовал для этих целей использовать TTabControl. По одной самой главной причине:

 

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

 

Легко представить типичную ситуацию, когда ваше приложение довольно большое и содержит большое число форм ввода и редактирования данных. Теперь представьте, что все эти контролы создаются при запуске приложения и живут все время существования приложения. Это совсем не маленькие размеры памяти, особенно на Андроиде.

 

Ресурсы мобильной платформа не равны ресурсам настольных платформ. И если на настольной системе вы можете особо не заморачиваться о размере потребляемой памяти, так как ее много. То на мобильнике это может привести к нехватке памяти и как следствие разрушение вашего приложения.

 

Главная идея - это иметь в каждый момент времени только то, что нужно. Поэтому я бы лучше рассматривал либо создание отдельной формы, либо создание в рантайме специального слоя (вида), которые будет загружен по верх всего, а потом будет разрушен после окончания выполнения редактирования.

 

Так же советую использовать фреймы для таких функционально законченных блоков (редакторы сущности):

  1. Позволяет быстро и удобно создавать в нужное время на мобильной платформе требуемый вид. Забирая от системы ресурсы только в тот момент, когда они действительно необходимы.
  2. Повторное использование в других местах приложения.

 

 

Здравствуйте !

 

Идея использования фреймов в мобильных приложениях конечно интересная. Но как быть для случая multi - device designer интерфейса, который реализован в XE7 ? Создавать отдельный фрейм для каждой платформы ? Но в этом случае будет затруднена синхронизация связей (кода) между элементами таких платфорно-ориентированных фреймов.

 

Как быть ? 

Ссылка на комментарий

во-первых: отделяйте гуи от кода !

во вторых : раз у вас для каждой платформы обсолютно разная реализация интерфейса - сделайте базовую форму и рисуйте фрейм для каждой платформы в отдельных вьюхах.

Ссылка на комментарий

во-первых: отделяйте гуи от кода !

во вторых : раз у вас для каждой платформы обсолютно разная реализация интерфейса - сделайте базовую форму и рисуйте фрейм для каждой платформы в отдельных вьюхах

Спасибо ! Поясните пожалуйста насчет "рисуйте фрейм для каждой платформы в отдельных вьюхах"

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...