交错网格视图(Recycleview),在NestedScrollView中加载更多功能

时间:2017-01-30 06:30:47

标签: android android-recyclerview android-nestedscrollview staggered-gridview

我想在我的交错网格视图中实现加载更多功能。我已经尝试了一些代码行,比如使用addOnScrollListener,但是当我到达列表底部时没有调用。
请找到我试图实现加载更多功能但未获得的代码预期的结果。

MY_STRAGGED_RECYCLIVIEW.addOnScrollListener(new RecyclerView.OnScrollListener() {
                    @Override
                    public void onScrolled(RecyclerView recyclerView,
                                           int dx, int dy) {
                        super.onScrolled(recyclerView, dx, dy);

                        totalItemCount = staggeredGridLayoutManager.getItemCount();
                        lastVisibleItem = staggeredGridLayoutManager
                                .findLastCompletelyVisibleItemPositions(null)[0];

                        if (!loading && totalItemCount <= (lastVisibleItem + visibleThreshold)) {
                            // End has been reached
                            // Do something
                            System.out.println("I amm here dd ");

                            loading = true;
                        }
                    }
                });

在上面的代码中, System.out 没有获得打印...

我为setOnScrollChangeListener的stragged gridview尝试了另一个监听器,但它也没有工作

MY_STRAGGED_RECYCLIVIEW.setOnScrollChangeListener(new View.OnScrollChangeListener() {
            @Override
            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                System.out.println("I amm here fffffffffff ");

            }
        });

此侦听器出现同样的问题,而不是打印我的 System.out

我在adapter类{@ 1}}类中尝试过的更多内容是

onBindViewHolder

上面的代码也没有用。请帮我解决这个问题..谢谢:)



@Abbas 请检查下面的适配器代码

if(getCount()==position)
{
////for getting the last item of the recycleview
}

1 个答案:

答案 0 :(得分:1)

实际上我使用的NestedScrollView是我view的父Staggered recycleview。因此addOnScrollListener听众和setOnScrollChangeListener没有在其中工作..
我在setOnScrollChangeListener中使用了NestedScrollView,它运行正常。检查我的下面的解决方案: -

NestedScrollView myNestedScroll= (NestedScrollView) findViewById(R.id.myNestedScroll);

myNestedScroll.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
    @Override
    public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

        if (scrollY > oldScrollY) {
            Log.i(TAG, "Scroll DOWN");
        }
        if (scrollY < oldScrollY) {
            Log.i(TAG, "Scroll UP");
        }

        if (scrollY == 0) {
            Log.i(TAG, "TOP SCROLL");
        }

        if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) {
            Log.i(TAG, "BOTTOM SCROLL");
        }
   }
});