Расстояние прокрутки WebView сверху

Я создаю приложение для 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);
          }
     }
});

Звоните setNestedScrollingEnabled (true) по раскладке.

Susmit Agrawal 08.01.2019 14:12
1
1
183
1

Ответы 1

Попробуй это,

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.

Gourav 04.02.2019 16:15

Другие вопросы по теме