当前位置: 首页 > 知识库问答 >
问题:

嵌套ScrollView中的RecyclerView ScrollListener

颜修真
2023-03-14

在< code>NestedScrollView的末尾有一个< code > endlesscrecyclerview 。< code>EndlessRecyclerView表示:当用户滚动到RecyclerView的底部时,它会加载更多数据。这已经在其他地方实现并运行了,但是当我将recyclerView放入< code>NestedScrollView时,< code>OnScrollListener事件没有触发。

XML设计:

<NestedScrollView>

     <Other views/>

     <EndlessRecyclerView/>

</NestedScrollView >

代码:

recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            // This is never fired! Here is where I implement the logic of EndlessRecyclerView
        }
    });

如何获取上述情况的滚动事件?

我知道让两个可滚动的视图在彼此内部是不好的。但是,在没有两个可滚动视图的情况下,我如何实现上述情况呢?

我已经关注了这个链接,但它不起作用:scrollview android中recyclerview的滚动事件

共有3个答案

尹承业
2023-03-14

我有一个类似的问题,虽然它有点不同。在我的例子中,我在一个片段中有一个回收视图,而嵌套的ScrollView在xml(活动的一部分)content_main中。

我用SwipeRefreshLayout包装了我在片段中的回收视图

这是我片段的代码:

    <?xml version="1.0" encoding="utf-8"?>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
    android:id="@+id/swipe_dummy"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/top_series_recycle_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

唯一要做的就是从代码中禁用SwipeRefreshLayout

mSwipeLayout.isEnabled = false

如果您不这样做,当您向下滑动时,它将显示无休止的刷新图标。我想与大家分享这个解决方案,以防有人需要这个功能或有这个问题

在您将使用SwipeReFresLayout包装回收视图之后,您将看到回收视图的addOnScrollListener将像往常一样被调用

经炜
2023-03-14
nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener()
{
    @Override
    public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY)
    {
       if (v.getChildAt(v.getChildCount() - 1) != null)
       {
          if (scrollY > oldScrollY)
          {
             if (scrollY >= (v.getChildAt(v.getChildCount() - 1).getMeasuredHeight() - v.getMeasuredHeight()))
             {
                //code to fetch more data for endless scrolling
             }
          }
       }
    }
 });
柳高卓
2023-03-14

要实现NestedScrollView下的recycler视图的无休止滚动,可以使用“NestedScrollView。OnScrollChangeListener "

nestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
            if(v.getChildAt(v.getChildCount() - 1) != null) {
                if ((scrollY >= (v.getChildAt(v.getChildCount() - 1).getMeasuredHeight() - v.getMeasuredHeight())) &&
                        scrollY > oldScrollY) {
                        //code to fetch more data for endless scrolling
                }
            }
        });

这里是v。getChildCount()-1应该为您提供循环器视图,您将为其实现无休止的滚动。

也<代码>滚动

参考:NestedScrollView.OnScrollChangeListener

 类似资料:
  • 我需要创建一个像谷歌报摊这样的界面,它是一种折叠标题(垂直滚动)上的ViewPenger(水平滚动)。我的要求之一是使用在Google IO 2015上展示的新设计支持库。(http://android-developers.blogspot.ca/2015/05/android-design-support-library.html) 基于克里斯·贝恩斯(https://github.com/c

  • 本文向大家介绍Android 中ScrollView嵌套GridView,ListView的实例,包括了Android 中ScrollView嵌套GridView,ListView的实例的使用技巧和注意事项,需要的朋友参考一下 Android 中ScrollView嵌套GridView,ListView的实例 在Android开发中,经常有一些UI需要进行固定style的动态布局,然而由于现在的U

  • 本文向大家介绍Android中ScrollView嵌套GridView的解决办法,包括了Android中ScrollView嵌套GridView的解决办法的使用技巧和注意事项,需要的朋友参考一下 前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。 找到大家的通用解决办法。记录一下。 解

  • 本文向大家介绍ios scrollview嵌套tableview同向滑动的示例,包括了ios scrollview嵌套tableview同向滑动的示例的使用技巧和注意事项,需要的朋友参考一下 我讨论的问题是嵌套同向滑动,能避免尽量避免。最好用一个tableview实现。一个tableview不够用了再嵌套,适用复杂场景。 首先我说下不适用的,免得大家浪费时间。 1.不适用上下拉刷新加载更多的页面。

  • 本文向大家介绍Android 解决ScrollView嵌套CridView显示问题,包括了Android 解决ScrollView嵌套CridView显示问题的使用技巧和注意事项,需要的朋友参考一下 Android 解决ScrollView嵌套CridView显示问题 由于GridView是可滑动的控件,嵌套在ScrollView下时需要重写onMeasure方法。 然后在布局XML文件中引入My

  • 如何聚合一个值在嵌套在Elasticsearch嵌套位置?我对一个嵌套对象没有问题,但在嵌套对象内的嵌套我感到困惑... 样本数据: 欲望结果: 在索引映射中,我将cat_a和条目字段的类型设置为嵌套,当我从工具字段查询聚合时,在cat_a的根(级别1)中没有问题,并且可以工作,但是在聚合中在rx_a(这是在第2级)我不能检索结果,它或空或显示错误,因为我的错误查询。 查询级别1 agg: 如何处