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

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

如何检测用户何时已经到达 NestedScrollView 的末尾并且在当前的滚动尝试中运动正在拉动?

我尝试了一些检测结束滚动的模式,但这与我想要实现的目标相去甚远。

我还发现,我可以重写公共(public)类CoordinatorLayout.Behavior并使用滚动方法,但是我对当前的@string/appbar_scrolling_view_behavior很满意,但我不太确定如何继续。

View 结构

<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>

有人熟悉这个问题吗?

最佳答案

您可以像这样检测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 
          }
        });

关于java - 检测垂直滚动已经结束并且用户正在拉动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48721163/

相关文章:

java - 关于 Java 的 Date 类和 getTime() 函数的混淆

java - 使用键从 Map 获取现有对象

java - 调用另一个构造函数时有什么方法可以访问 this.toString() 的值吗?

Android 从 Activity 顶部下拉以显示 View

android - 像 gmail 新 (4.5) 应用程序一样拉动刷新

google-chrome - 手机 : how to prevent pull-to-refresh

java - 如何使用接口(interface)作为 map 的值?

android - NDK 调试 : ndk-gdb fails to pull app_process. 谁以及何时创建了 app_process 二进制文件?

java - 如何更改按钮背景并在按下其他按钮后启用它

java - Android 和缺少函数 getTextGlyphs