Как определить, чтобы просмотреть видимость (80% или около того) в режиме рециркуляции, например, в Youtube. Автозапуск новостей воспроизводит видео, когда отображается ~ 80 - PullRequest
0 голосов
/ 03 апреля 2020

Как определить, чтобы увидеть видимость (80% или около того) в режиме рециркуляции, таком как Youtube. Автозапуск новостей воспроизводит видео при отображении ~ 80. И воспроизведение видео останавливается на прокрутке и начинает воспроизводиться в режиме ожидания, но первоначально, если видео находится в состоянии воспроизведения, оно продолжает в этом состоянии даже в состоянии прокрутки, пока оно не станет видимым ~ 80, после чего оно останавливается, так как это сделано. Идеи и примеры приветствуются.

То, что я пробовал, используйте метод перезапуска представлений onChildDetached, но он вызывает событие, только когда полное представление выходит за пределы видимой области экрана. Спасибо.

1 Ответ

0 голосов
/ 05 апреля 2020

Вы можете сыграть первый полностью видимый предмет, как этот. Если существует возможность 2 полных видимых элементов, и вы хотите, чтобы они оба воспроизводились вместо «findFirstCompletelyVisibleItemPosition», вы можете перебирать дочерний объект layoutManagers и сравнивать их видимые высоты с фактическими высотами.

val scrollListener = object : RecyclerView.OnScrollListener() {
        override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
            val layoutManager = (recyclerView.layoutManager as LinearLayoutManager)
            super.onScrolled(recyclerView, dx, dy)
            val firstItem = layoutManager.findFirstCompletelyVisibleItemPosition()
            //get the item at position fistItem and play
        }
    }
    yourRecyclerView.addOnScrollListener(scrollListener)
...