2012-01-04 2 views
1

У меня проблема ... У меня есть два scrollviews в absolutelayout. другими словами, они являются полноэкранными и накладываются друг на друга.Перекрывающиеся scrollviews

верхний прокрутки - горизонтальная прокрутка, а нижняя - вертикальная прокрутка прокрутки.

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

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

Как я могу решить эту проблему?

Заранее благодарен!

+0

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

+0

Я использую fill_parent, поэтому scrollviews всегда будет в полном размере :) – Alioooop

ответ

0

Возможно, вам понадобится реализовать для этого специальный элемент управления. Для вашего пользовательского элемента управления вам понадобится класс Scroller. Также вы можете скачать source code for ScrollView class и изменить его, чтобы быть двунаправленным.

И не ставьте прокручиваемые вещи в другие прокручиваемые вещи - они склонны сражаться за события касания.

+0

Но каким образом это поможет? основной взгляд никогда не получит события касания, если что-то еще принимает его раньше? – Alioooop

1

Как насчет гнездования? Вы можете сделать его визуально таким же, через paddings и поля, и, кроме того, вы можете контролировать, какой вид обрабатывает штрихи.

Я не уверен, что вы можете сказать, что один вид прокрутки должен обрабатывать только горизонтальные, а другой - только вертикальные - возможно, нет. Но вы можете переопределить onTouchEvent и onInterceptTouchEvent, чтобы определить, какое поведение вам нужно! (Проверьте http://developer.android.com/reference/android/view/GestureDetector.html)

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

}

Или что-то подобное , Не исключено, что вы должны делать, но вы получаете эту идею.

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