【问题标题】:Removing FAB when reaching end of RecyclerView到达 RecyclerView 结束时删除 FAB
【发布时间】:2016-01-04 10:44:41
【问题描述】:

我正在尝试创建一个屏幕,其中有一个具有固定数量的元素(4 个元素)和一个 FAB 按钮(右下位置)的 Recycler View。

当我向下滑动并到达 RecyclerView 的最后一个元素时,我想移除 FAB 按钮(翻译或显示效果)。

我还希望在到达终点后向上滚动时让 FAB 再次返回。

你能告诉我怎么做吗?

感谢您的帮助。

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    将addOnScrollListener 添加到RecyclerView。

    mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);
    }
    
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        mOnScreenItems = mRecyclerView.getChildCount();
        mTotalItemsInList = linearLayoutManager.getItemCount();
        mFirstVisibleItem = linearLayoutManager.findFirstVisibleItemPosition();
        if (mLoadingItems) {
            if (mTotalItemsInList > mPreviousTotal+1) {
                mLoadingItems = false;
                mPreviousTotal = mTotalItemsInList;
            }
        }
        if (!mLoadingItems && (mTotalItemsInList - mOnScreenItems) <= (mFirstVisibleItem + mVisibleThreshold)) {
            // end reached
            mLoadingItems = true;
        }
    }
    });
    

    【讨论】:

      【解决方案2】:
      LinearLayoutManager layoutManager=new LinearLayoutManager(this);
      //Add this to your Recyclerview
      recyclerview.setLayoutManager(layoutManager);
      
      //Tocheck if  recycler is on top
      if(layoutManager.firstCompletelyVisibleItemPosition()==0){
      //Its at top ..
      fab.show();
      }
      
      //Tocheck if  recycler is on bottom
          if(layoutManager.lastCompletelyVisibleItemPosition()==data.size()-1){
          //Its at bottom ..
           fab.hide();
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-11
        • 1970-01-01
        相关资源
        最近更新 更多