Обнаружить, что вертикальная прокрутка уже закончилась, и пользователь тянет

Как определить, когда пользователь уже достиг конца NestedScrollView и в его текущей попытке прокрутки движение тянется?

Я пробовал некоторые шаблоны с обнаружением конечной прокрутки, но это далеко не то, чего я ищу.

Я также пришел к тому, что могу переопределить общедоступный класс CoordinatorLayout.Behavior и поиграть с методами прокрутки, однако меня устраивает текущий @string/appbar_scrolling_view_behavior, и я не совсем уверен, как действовать дальше.

просмотреть структуру

<android.support.design.widget.CoordinatorLayout>


    <android.support.v4.widget.NestedScrollView
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />


    <android.support.design.widget.AppBarLayout>

        <android.support.design.widget.CollapsingToolbarLayout"
            app:layout_scrollFlags="scroll|exitUntilCollapsed|enterAlways" />

    </android.support.design.widget.AppBarLayout>

</android.support.design.widget.CoordinatorLayout>

Кто-нибудь знаком с проблемой?


person Jocky Doe    schedule 10.02.2018    source источник


Ответы (1)


Вы можете обнаружить конец NestedScrollView вот так

svProduct.getViewTreeObserver()
        .addOnScrollChangedListener(() -> {
          View view = svProduct.getChildAt(svProduct.getChildCount() - 1);
          int diff = (view.getBottom() - (svProduct.getHeight() + svProduct.getScrollY()));
          if (diff == 0) {
            // reached to bottom 
          }
        });
person pk4393    schedule 10.02.2018