2014-01-15 2 views
0

У меня есть два макета, определенный mainactivity.xml, который находится в папке layout, а другой mainactivity.xml, который находится в папке layout-port. Как вы, вероятно, можете сказать, что один макет для ландшафтной ориентации, а другой - для портрета.Изменить ScrollView в HorizontalScrollView

Проблема у меня в том, что в плане ландшафта у меня есть ScrollView, а в макете «Портрет» это HorizontalScrollView с тем же id. Как изменить (в коде) ScrollView в HorizontalScrollView при изменении ориентации устройства?

ответ

-2

В вашем Scrollview определить это свойство

андроида: ориентация = «горизонтальные» для пейзажа

андроида: ориентация = «вертикальный» для портрета

+0

scrollview не имеет свойства ориентации. – Damian

+0

lol .... я использую его во всех моих проектах, и вы говорите, что у него нет ориентации – Yogamurthy

+1

Вы запутались в Linringayout? Существует ScrollView, и есть HorizontalScrollView. В ScrollView отсутствует свойство ориентации. – Damian

0

Вы можете создать файл bools.xml в разрешении/ценности-земля (а также один в разрешении/значения порта, в котором is_landscape должен быть установлен в ложь)

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <bool name="is_landscape">true</bool> 
</resources> 

Тогда в вашем коде, вы можете проверить

if (getResources().getBool(R.bool.is_landscape)) { 
    //setup horizontal scrollview 
} else { 
    //setup vertical scrollview 
} 

Возможно, лучший способ - использовать эту библиотеку (поэтому вам не нужно кодировать два разных компонента ui).

https://github.com/lucasr/twoway-view

Я использую это в текущем проекте, и он прекрасно работает.

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