Частичная альбомная ориентация, частичная портретная ориентация для одного занятия - PullRequest
0 голосов
/ 22 июня 2011

Я хочу, чтобы некоторые кнопки / текстовые просмотры в моей деятельности отображались в книжной ориентации, а остальные действия - в альбомной ориентации.

Возможно ли, чтобы некоторые виды (или макеты) в вашей деятельности отображались в альбомной ориентации, а некоторые - в портретной ориентации? Может быть, я могу отобразить два действия как одно, если это возможно? Таким образом я могу определить ориентацию для каждого вида деятельности.


- Ред. 24 июня '11 11:45 утра:

Извините, мне следовало потратить больше времени на лучшее объяснение моего вопроса. Я хочу, чтобы одно действие всегда имело некоторые виды, фиксированные в альбомной экранной ориентации (не ориентация макета), а некоторые всегда фиксированные в книжной экранной ориентации (опять же, не ориентация макета). Я понимаю, что ориентация макета контролирует, будут ли виды добавлены вертикально или горизонтально (по вертикали располагаются сверху вниз и горизонтально по горизонтали слева направо), но если ориентация экрана в ландшафте активности, все равно все будет отображаться в ландшафте ориентация и наоборот для портрета. Это не то, что я спрашиваю. Так что, по сути, некоторые из моих представлений будут отображаться в ландшафте, а остальные в portarit, означающие, что их текст / форма будут «боковыми» или «перпендикулярными» по отношению к пейзажным представлениям.

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

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

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

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

1) Это то, что у меня есть в настоящее время, у вертикально ориентированного LinearLayout есть два sub-LinearLayout. Первый sub-LinearLayout имеет несколько TextViews. Второй sub-LinearLayout имеет кучу кнопок, и это та, которую я хочу ориентировать в портретном режиме:! (http://synappze.com/development/activity-partial-screen-orientation-illustration-1.jpg)

2) Если я ориентирую основной LinearLayout по горизонтали, два sub-LinearLayout будут отображаться, как показано ниже. Но я хочу, чтобы изображение справа с кнопками отображалось в портрете: http://synappze.com/development/activity-partial-screen-orientation-illustration-2.jpg

3) Это то, что я хочу. Обратите внимание, что кнопки справа отображаются в портретной ориентации, тогда как TextViews все еще находятся в горизонтальной ориентации: http://synappze.com/development/activity-partial-screen-orientation-illustration-3.jpg

Ответы [ 2 ]

0 голосов
/ 23 июня 2011

Для каждого действия в файле манифеста вы можете добавить атрибут ориентации и установить его в альбомную или книжную форму

пример:

вы можете сделать это для всех ваших действий, определенных в манифесте

0 голосов
/ 22 июня 2011

Вы можете сохранить часть, которую вы хотите отобразить в портретной ориентации, и часть, которую вы хотите, в виде фиксированного пейзажа в двух разных файлах макета XML. Затем, в вашем методе onCreate(), программно определите ориентацию телефона и включите два файла в ваш макет соответственно. Извините за быстрый ответ ... Я сейчас на работе. Дайте мне знать, если у вас есть вопросы по этому поводу, я могу ответить, когда доберусь туда.

...