У меня есть веб-страница для тестирования (https://storage.googleapis.com/htmltestingbucket/nested_scroll_helper.html), которая просто печатает счетчик события прокрутки, который html обнаружил в фиксированный заголовок
Когда Android WebView является единственным прокручиваемым элементом во фрагменте, все в порядке, и WebView отправляет события прокрутки на страницу
Если я хочу добавить собственные элементы выше и ниже WebView, тогда все становится намного сложнее.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="SOMETHING ABOVE THE WEBVIEW" />
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="SOMETHING BELOW THE WEBVIEW" />
</LinearLayout>
</ScrollView>
Я знаю, что не хорошо иметь WebView внутри ScrollView, но я должен предоставить единый прокручиваемый опыт с гибридным контентом и соответствующими прокручивающими событиями в html-документе. Я нашел много вопросов по этому вопросу, но я смог создать полное сквозное решение
Кроме того, я знаю, что у lint есть официальная проверка для этого:
NestedScrolling --------------- Описание: Вложенные виджеты прокрутки
Приоритет: 7/10 Уровень важности: Предупреждение Категория: Правильность
Виджет прокрутки, такой как ScrollView, не должен содержать вложенных прокрутки виджеты, поскольку это имеет различные проблемы удобства использования
И все же я не могу реализовать контент веб-представления в native, поэтому мне нужен альтернативный способ сделать это