Интерфейс Android: новая активность или новый макет? - PullRequest
2 голосов
/ 13 июня 2011

Я проектирую интерфейс для приложения, чтобы отображать некоторые данные, извлеченные из базы данных в TableLayout. В настоящее время по умолчанию используется книжная ориентация, которая состоит из выпадающего меню и таблицы с тремя столбцами. Когда пользователь переключается в альбомную ориентацию, счетчик и его варианты могут остаться прежними, но я собираюсь отображать совершенно другую таблицу (разные заголовки столбцов и больше столбцов).

Стоит отметить, что, когда пользователь выбирает опцию в раскрывающемся меню, выполняется обращение к базе данных. Все данные, полученные из этого вызова, хранятся в ArrayList, и этот ArrayList также содержит информацию, которая будет отображаться в альбомном режиме. У меня вопрос: лучше ли будет создать ландшафтный дизайн как совершенно новое занятие или просто определить его как новый макет? Мне кажется, что создание нового действия потребовало бы большого количества избыточного кода и заставило бы пользователя без необходимости ждать другого вызова веб-службы.

Вот портретная раскладка:

enter image description here

Вот ландшафтный макет:

Note: the spinner from portrait mode will be present in the landscape layout as well, forgot to include it in the picture Примечание: спиннер из портретного режима будет присутствовать и в альбомной ориентации, забыл включить его в изображение

Ответы [ 2 ]

4 голосов
/ 13 июня 2011

Android позволяет очень легко иметь отдельные файлы макетов для разных ориентаций. Если вы просто добавите папку layout-land в свой проект и добавите новый файл макета с тем же именем, что и для портрета (но с различными необходимыми элементами пользовательского интерфейса), то сама ОС автоматически переключит макеты в зависимости от ориентации.

Все, что вам нужно сделать, это проверить ориентацию в onCreate(...) и сохранить ее как логическое значение (например, isPortrait), тогда каждый метод, отвечающий за обновление пользовательского интерфейса, может просто проверить, чтобы определить, какие компоненты (столбцы таблицы и т. Д.) Нужны быть заполненным / обновленным.

1 голос
/ 13 июня 2011

Я думаю, что иметь новое занятие при переходе от портрета к пейзажу - это слишком много.Вам просто нужно использовать медиазапросы CSS3, чтобы изменить способ отображения таблицы.Показать больше информации с использованием поплавков или очищает, когда на ландшафте.Используйте принципы адаптивного макета: http://www.alistapart.com/articles/responsive-web-design/

...