背景
我做了一个可以在RecyclerView上展示快速滚动条的库,(这里,如果有人需要的话),我想要决定何时显示和隐藏快速滚动条。
我认为一个好的决策是,如果屏幕上有未显示的项(或者有很多未出现的项),在RecyclerView完成其布局过程后,我将设置快速滚动条可见,如果所有项都已显示,则不需要显示它。
问题
我找不到RecyclerView的监听器/回调函数来告诉我它何时完成显示项目,以便我可以检查显示的项目数与项目总数相比有多少。
当键盘出现和隐藏时,RecyclerView的大小也可能会改变。
我尝试过的
滚动监听器可能没有用,因为它会一直发生,并且我只需要在RecyclerView更改其大小或项计数(或数据)更改时进行检查。
我可以使用一个通知我大小更改的布局来包装RecyclerView,例如这个,但我认为它不会起作用,因为RecyclerView可能还没有准备好告诉我有多少项可见。
检查显示的项目数的方法可以这样使用:
final LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
mRecyclerView.setLayoutManager(layoutManager);
...
Log.d("AppLog", "visible items count:" + (layoutManager.findLastVisibleItemPosition() -layoutManager.findFirstVisibleItemPosition()+1));
问题
如何在recyclerView显示其子视图完成后得到通知,以便根据当前显示的内容决定是否显示/隐藏快速滚动条?