Я создаю приложение для Android с WebView в MainActivity, завернутым в макет обновления смахивания.
Теперь то, что я хочу сделать, - это если веб-просмотр прокручивается вниз (даже на небольшое расстояние), я хочу скрыть макет обновления смахивания. И если веб-просмотр не прокручивается, то есть его содержимое находится вверху, я хочу показать макет обновления смахивания.
Это связано с тем, что при прокрутке веб-просмотра возникает проблема, заключающаяся в том, что при прокрутке вверх вызывается макет обновления прокрутки и не позволяет веб-просмотру прокручиваться вверх.
Я пробовал это:
final int content_height = (int) Math.floor(webView.getContentHeight() * getResources().getDisplayMetrics().density);
webView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
if (scrollY!=content_height) {
swipeRefreshLayout.setVisibility(View.GONE);
}
else {
swipeRefreshLayout.setVisibility(View.VISIBLE);
}
}
});
Попробуй это,
webView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
if (scrollY == 0) {
swipeRefreshLayout.setVisibility(View.VISIBLE);
}
else {
swipeRefreshLayout.setVisibility(View.GONE);
}
}
});
Но это привело бы к отключению всего на экране, поскольку веб-просмотр находится в SwipeRefreshLayout.
Звоните
setNestedScrollingEnabled (true)по раскладке.