Фон
Я сделал библиотеку, которая показывает быструю прокрутку для RecyclerView ( здесь, на случай, если кто-то захочет), и я хочу решить, когда показывать и когда скрывать быструю прокрутку.
Я думаю, что хорошим решением было бы то, что если есть элементы, которые не отображаются на экране (или их много не появляется), после того, как RecyclerView завершит процесс компоновки, я бы установил быструю прокрутку в быть видимым, и если все элементы уже показаны, нет необходимости показывать их.
Эта проблема
Я не могу найти прослушиватель/обратный вызов для RecyclerView, чтобы сообщить мне, когда он завершил показ элементов, чтобы я мог проверить, сколько элементов отображается по сравнению с количеством элементов.
RecyclelerView может также изменить свой размер, когда клавиатура появляется и прячется.
Что я пробовал
Прослушиватель прокрутки, вероятно, не поможет, так как это происходит "постоянно", и мне нужно только проверять, когда 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 завершил показ своих дочерних представлений, чтобы я мог на основе того, что в данный момент показано, показать/скрыть быструю прокрутку?