Перекрывающиеся прокрутки - PullRequest
1 голос
/ 05 января 2012

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

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

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

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

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

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 10 апреля 2013

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

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

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

-override onInterceptTouchEvent(Event e) {
      if (e.getAction() == ACTION_DOWN){
        //dispatch the call manually to the scroll view below you 
        mChild.onTouchEvent(e);
        super.onTouchEvent(e);
      }
      if (e.getAction() == ACTION_MOVE && the move is horizontal){
         mChild.onTouchEvent(e);
      } else {
         super.onTouchEvent(e); 
     }
      return true;
}

}

Или что-то в этом роде.То, что вы должны делать, не является точным, но вы поняли.

0 голосов
/ 05 января 2012

Возможно, вам потребуется реализовать пользовательский элемент управления для этого. Вам понадобится класс Scroller для пользовательского контроля. Также вы можете скачать исходный код для класса ScrollView и изменить его на двунаправленный.

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

...