检测垂直滚动已经结束并且用户正在拉动

时间:2018-02-10 13:12:39

标签: java android pull-to-refresh android-nestedscrollview coordinator-layout

如何检测用户何时已到达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>

有谁熟悉这个问题?

1 个答案:

答案 0 :(得分:0)

您可以像

那样检测 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 
          }
        });