2012-01-29 3 views
2

Я новичок в разработке Android, и у меня есть вопрос с наилучшими практиками относительно макетов смены ориентации.Рекомендации по разработке Android

Мой вопрос касается обработки свойств макета, когда пользователь меняет ориентацию устройства.

Если для целей приложения необходимо, чтобы элементы управления были перемещены на макет при изменении ориентации, должен ли создаваться новый макет для этой конкретной ориентации? Или следует приложить все усилия для того, чтобы программно изменить элементы управления на одном макете?

Благодарим вас за ввод.

ответ

1

Я думаю, что новый макет не самый лучший вариант, ваша программа должна наилучшим образом переместить элементы управления. Я бы предложил прочитать эти links.

3

Я пойду дальше и не соглашусь с thinksteep здесь :) Я думаю, что новый макет действительно лучший вариант , если вам нужно выйти за рамки простого изменения размера (например, перемещение взглядов по отношению друг к другу).

Андроид API предназначен для обработки этого автоматически - у вас может быть каталог layout-land и layout-port с отдельными макетами для ландшафта и портрета соответственно, и система будет использовать то, что наиболее подходит.

Обратите внимание, что вам следует избегать использования отдельных макетов, если это возможно, - это в два раза больше работы для вас, чтобы поддерживать и тестировать их. Как правило, использование умных весов и соответствующих RelativeLayouts может сделать макет работы с любым разрешением.

Но в некоторых случаях вы действительно хотите переставить макет полностью на основе ориентации. В качестве случайного примера просмотрите текущую версию Google Music. В портрете большая часть экрана - обложка, с некоторой информацией внизу. В ландшафте левая половина - обложка, правая половина - информация.

Я также закрою ссылку на Android-документы - check this out. Это больше о нескольких размерах экрана, но он также охватывает пейзаж/портрет.

+1

Я согласен с EboMike. Также изучите использование фрагментов. Вы можете повторно использовать одни и те же подвыборы в обеих ориентациях. Возьмем, к примеру, главное окно в приложении gmail. Чтобы использовать фрагменты перед Honeycomb, вам нужен пакет совместимости с Android: http://android-developers.blogspot.com/2011/03/fragments-for-all.html –

+0

Хорошая точка. Фрагменты почти необходимы в этот момент. Существует пакет совместимости, для которого требуется только уровень API 4, поэтому ваше приложение будет работать практически на всех устройствах. – EboMike

Смежные вопросы