【问题标题】:Admob in RecycleView with pagination带有分页的 RecyclerView 中的 Admob
【发布时间】:2016-12-27 15:26:37
【问题描述】:

我有 RecycleView,它显示带有 admob 的项目数,它运行良好,但我想实现分页功能,我尝试实现但没有成功,我的代码如下所示

Home.Java

recycleFeedList.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                if (dy > 0) //check for scroll down
                {
                    visibleItemCount = mLinearLayoutManager.getChildCount();
                    totalItemCount = mLinearLayoutManager.getItemCount();
                    pastVisiblesItems = mLinearLayoutManager.findFirstVisibleItemPosition();
                    if (loading) {
                        LogUtils.LOGD("LastPage:", lastPage + "");
                        LogUtils.LOGD("visibleItemCount:", visibleItemCount + "");
                        LogUtils.LOGD("pastVisiblesItems:", pastVisiblesItems + "");
                        LogUtils.LOGD("totalItemCount:", totalItemCount + "");
                        if ((visibleItemCount + pastVisiblesItems) >= totalItemCount) {
                            loading = false;
                            getFeedList(2, "", 1, lastPage);
                        }
                    }
                }
            }
        });

我的适配器如下:

@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
            RecyclerViewFeedItem recyclerViewFeedItem = (RecyclerViewFeedItem) viewHolder.itemView;

            recyclerViewFeedItem.bind(mContext, items, position, this, REQUEST_CODE);

        }

【问题讨论】:

    标签: android pagination android-recyclerview admob


    【解决方案1】:

    你可以这样做:

    int currentPage = 1;
    
    class OnScrollListener extends RecyclerView.OnScrollListener
    {
        int firstVisibleItem;
        int visibleItemCount;
        int totalItemCount;
        private int previousTotal = 0;
        private boolean loading = true;
        private int visibleThreshold = 5;
    
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy)
        {
            if (dy > 0)
            {
                visibleItemCount = layoutManager.getChildCount();
                totalItemCount = layoutManager.getItemCount();
                firstVisibleItem = layoutManager.findFirstVisibleItemPosition();
    
                if (loading)
                {
                    if (totalItemCount > previousTotal)
                    {
                        loading = false;
                        previousTotal = totalItemCount;
                    }
                }
    
                if (!loading &&
                        (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold))
                {
                    currentPage++;
                    //here you load next page, e.g.: load(currentPage);
                    footer.setVisibility(View.VISIBLE);
                    loading = true;
                }
            }
        }
    }
    

    用法:

    recyclerView.addOnScrollListener(new OnScrollListener());
    

    【讨论】:

      猜你喜欢
      • 2017-02-03
      • 2016-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      相关资源
      最近更新 更多