如何创建无尽的两个侧面滚动recyclerView?

如何创建无尽的两个侧面滚动recyclerView?,第1张

概述我看到了this个问题.这个问题的答案是可行的.但是...我必须创建向两侧滚动.这个答案帮助我达到了最低要求,但是当我到达列表顶部时,我不知道如何发送请求.我试图使用像这样的东西:recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @Overri

我看到了this个问题.这个问题的答案是可行的.但是…我必须创建向两侧滚动.这个答案帮助我达到了最低要求,但是当我到达列表顶部时,我不知道如何发送请求.我试图使用像这样的东西:

recyclerVIEw.addOnScrollListener(new RecyclerVIEw.OnScrollListener() {            @OverrIDe            public voID onScrolled(@NonNull RecyclerVIEw recyclerVIEw,int dx,int dy) {                if(dy > 0) //check for scroll down                {                }            }        });

并添加以下内容:

if(dy == 0) {           getting some data          }

但这是错误的.为什么?因为在到达列表底部之后加载了一些数据之后,我的列表会自动到达列表顶部并再次加载数据.因此,我必须再添加一个条件,但我无法想象哪个条件.也许有人可以帮我吗?

更新

我试图添加这样的东西:

recyclerVIEw.addOnScrollListener(new RecyclerVIEw.OnScrollListener() {            @OverrIDe            public voID onScrolled(@NonNull RecyclerVIEw recyclerVIEw,int dy) {                if (dy > 0) //check for scroll down                {                  pastVisiblesItems = layoutManager.findFirstVisibleItemposition();                  if (loading) {                      loading = false;                   }                }                if(pastVisiblesItems==5){                    loading=true;                }                if (loading&&recyclerVIEw.canScrollVertically(-1)){                    if (prev_url != null) {                        Log.i("m","[]");                    }                }            }        });

但是这种情况:

if (loading&&recyclerVIEw.canScrollVertically(-1)){                        if (prev_url != null) {                            Log.i("m","[]");                        }                    }

将发送约30个请求,这对我来说是错误的:(最佳答案您可以尝试反转条件以达到滚动侦听器的顶部,如下所示:

recyclerVIEw.addOnScrollListener(new RecyclerVIEw.OnScrollListener() {        @OverrIDe        public voID onScrolled(@NonNull RecyclerVIEw recyclerVIEw,int dy) {            if(dy > 0) //check for scroll down            {                visibleItemCount = mLayoutManager.getChildCount();                totalitemCount = mLayoutManager.getItemCount();                pastVisiblesItems = mLayoutManager.findFirstVisibleItemposition();                if (loading)                 {                    if ( (visibleItemCount + pastVisiblesItems) >= totalitemCount)                     {                        loading = false;                        Log.v("...","Last Item Wow !");                        //Do pagination.. i.e. fetch new data                    }                }            }            if(dy < 0) //check for scroll up            {                visibleItemCount = mLayoutManager.getChildCount();                pastVisiblesItems = mLayoutManager.findLastVisibleItemposition();                if (loading)                 {                    if ( (pastVisiblesItems - visibleItemCount) <= 0)                     {                        loading = false;                        Log.v("...","First Item Wow !");                        //Do pagination.. i.e. fetch new data                    }                }            }        }    });
总结

以上是内存溢出为你收集整理的如何创建无尽的两个侧面滚动recyclerView? 全部内容,希望文章能够帮你解决如何创建无尽的两个侧面滚动recyclerView? 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1145001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存