ListView вложенная прокрутка по API <21

Название ясно. У меня такой макет:

_________________ |_______________| <- Toolbar |___|___|___|___| <- Tablayout | | | | | ViewPager | | | |_______________| 

Обе панели инструментов и tablayout находятся внутри AppBarLayout , поэтому я могу использовать флажки прокрутки, чтобы скрыть панель инструментов при прокрутке вверх. Проблема в том, что это работает только с представлениями с поддержкой прокрутки. Большинство вкладок – я имею в виду, что большинство страниц – это support.v4.NestedScrollView s, так что это нормально; Другие (и должны быть) ListView .

От Lollipop я могу просто добавить android:nestedScrollingEnabled="true" в список, и панель инструментов корректно скрывается в прокрутке.

В API <21, однако, нет такого атрибута, и панель инструментов не скрывается. Еще более важно, что самые последние элементы в списке скрыты из-за некоторой ошибки измерения в CoordinatorLayout : listview действует так, как если бы у него было пространство, занимаемое в данный момент на панели инструментов.

Решения:

  • Переключитесь на RecyclerView , который поддерживает вложенную прокрутку: я не могу, потому что мне нужно использовать адаптер внешней библиотеки, который работает только с видами адаптера и который я не могу заменить (а именно ParseQueryAdapter );

  • Расширение ListView и реализация вложенной прокрутки: кажется сложным;

  • Расширьте ListView и реализуйте некоторые способы обхода, такие как измерение материала, чтобы избежать проблемы последнего элемента или (и) настраиваемого поведения, чтобы скрыть панель инструментов: тоже кажется сложным;

  • Используйте какой-то трюк: не нашли.

Любая помощь?

Например, я (отчаянно) пытался:

 <android.support.v4.widget.NestedScrollView android:nestedScrollingEnabled="true" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent"> </ListView> </android.support.v4.widget.NestedScrollView> 

Но таким образом ListView не match_parent как match_parent . Я получаю небольшой вид с небольшой высотой, а остальная часть страницы пуста.

Solutions Collecting From Web of "ListView вложенная прокрутка по API <21"

К сожалению, нет возможности вложить вложенную прокрутку в ListView – иначе это не потребует изменений, которые были сделаны в API 21.

Вы заметите, что текущий Parse SDK полностью удалил ParseQueryAdapter . Учитывая это, может возникнуть смысл начать создание собственного адаптера на основе RecyclerView используя API-интерфейс запроса анализа .

Для тех, кто ParseQueryAdapter конкретной проблемой ParseQueryAdapter ,

  • Ребята на parse.com работают над версией RecyclerView.Adapter ;

  • Есть бета-версия .