Я пытаюсь синхронизировать позиции двух ScrollViews. Я пытаюсь сделать это для отображения списка программ телепередач.
Я создал пользовательский класс, который расширяет RelativeLayout для отображения руководства. Это относительное расположение имеет четырех детей: imageview в верхнем левом углу, HorizontalScrollView для отображения заголовков столбцов в верхнем правом, ScrollView для отображения заголовков строки, внизу оставленных, и ScrollView в нижнем правом, которое содержит списки. Этот ScrollView затем содержит HorizontalScrollView, который в свою очередь содержит LinearLayout с несколькими дочерними представлениями, которые отображают данные. Я надеюсь, что это объясняет это ясно, но здесь является схемой для создания этого более ясным:
____________
|__|___hsv___|
| | |
| | sv -> |
| | hsv -> |
|sv| ll -> |
| | etc |
| | |
|__|_________|
Я настроил его как это, потому что я хотел, чтобы списки руководств прокрутили и горизонтально и вертикально, но нет никакого представления прокрутки, которое делает это. Кроме того, я хочу, чтобы строка и заголовки столбцов отобразили, в каком положении списки руководств, но я хочу, чтобы они были выстроены в линию правильно. Таким образом, я пытаюсь найти способ синхронизировать положения двух hsv's и также синхронизировать положения двух sv's. Я также пытаюсь сделать это способом, который старается не просто выполнять обработчик каждые несколько миллисекунд, чтобы опросить одно представление и обратиться к scrollTo другой.
Я никоим образом не уверен, что это - лучший способ сделать это, но это - то, что я придумал. Если у кого-либо есть какие-либо другие предложения, не стесняйтесь!
Не стоит ли реализовать onTouchEvent(MotionEvent me) во всех ваших панелях? Когда одна из ваших панелей прокручивается, вызывается этот метод, и он может обеспечить синхронизацию всех остальных.
Обработка событий касания не работает на 100%. Количество прокруток в разных представлениях может не всегда синхронизироваться.