滚动到列表底部时隐藏FloatingAction项?

The*_*ker 1 android scroll floating-action-button android-recyclerview

因此,如果您的RecyclerView延伸到屏幕的末尾并使用FloatingActionButton或第三方FloatingActionMenu,那么掩盖就会出现轻微问题:如果滚动到列表的末尾,浮动按钮会覆盖行的一部分,没有办法看到或得到它下面的东西.

有没有Android允许你这样做的方式:

  1. 检测您的列表中是否包含足够数量的项目,即屏幕底部是否有可见的行.

  1. 如果向下滚动到最后,请将按钮滑开,如果开始向上滚动,则将它们滑回原位?

编辑:或者,或者,在RecyclerView的末尾添加动态填充,只有在你一直向下滚动时才显示?

kop*_*rko 6

解决覆盖UI部分问题的常见模式是在用户开始向下滚动时隐藏FAB ...您可以通过此代码片段(与RecyclerView一起使用)实现此目的:

    fDemandsRv.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            if(dy > 0 ){
                if(fFab.isShown()) fFab.hide();
            } else {
                if(!fFab.isShown()) fFab.show();
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

如果你坚持将它隐藏在最后并且你正在使用RecyclerView和LinearLayoutManager,你可以findLastCompletelyVisibleItemPosition()在OnScrollListener回调期间检查LayoutManager对象上的方法...