У меня нет ссылок, чтобы подтвердить это прямо сейчас, но это невозможно, и это хорошо известная «проблема». Если вы немного погуглите или поищете здесь на SO, вы найдете ряд тем, посвященных этой теме.
Проблема возникает в большинстве случаев, когда у вас есть вид с прокруткой внутри другого вида с прокруткой в том же направлении. Рассмотрим следующий пример:
- У вас есть два списка внутри ScrollView.
- Оба списка ровно на один экран.
Как прокрутить вниз до второго списка?
При прокрутке как ваш макет узнает, прокручиваете ли вы список или контейнер?
Это в основном вопрос, который является причиной, и единственным официальным решением является то, что это так, как должно быть, и не будет никакого решения. Обычно достаточно иметь ListView или ScrollView, но я сталкивался со случаями, когда у вас должно быть представление списка в виде прокрутки (в моем случае клиенту нужен был похожий на iPhone указатель даты на странице прокрутки) .
Я решил это с помощью FrameLayout, содержащего пользовательский ScrollView и ListView поверх этого. Затем в коде для пользовательского ScrollView я добавил строку в метод onScroll, который обновил верхнее поле ListView, чтобы увеличить или уменьшить его по мере прокрутки пользователем. Удивительно, но это сработало.
ПРИМЕЧАНИЕ: помните, что:
- ListView обрабатывает собственную прокрутку. Если все, что вам нужно, это прокрутка
список, вам не нужно ScrollView.
- Если вам нужен макет со списком и местом для кнопок или других
рассмотрите возможность создания макета так, чтобы список покрывал только
достаточно места для вас, чтобы соответствовать другим вашим представлениям ниже / выше без
скроллинг.