Эпоксидная смола Airbnb с Viewpager и Youtubeplayer - PullRequest
0 голосов
/ 11 июля 2019

У меня есть Viewpager, который расширяет FragmentStatePagerAdapter на 2 фрагмента (каждый имеет com.airbnb.epoxy.EpoxyRecyclerView)

Используется Airbnb's Expoxy библиотека для заполнения heterogeneous recyclerview

1st fragmentимеет youtube player (используется библиотека https://github.com/PierfrancescoSoffritti/android-youtube-player), которая воспроизводит видео в начале экрана

Эта библиотека youtube заботится о жизненном цикле youtubeplayer, добавляя fragment.lifecycle.addObserver(youtubePlayer)

Выпуск

Когда я пролистываю до 2nd fragment, видео все еще воспроизводится в 1st fragment

Мои выводы

При пролистывании viewpager до 2nd fragment, the 1st fragment не переходит в onPause() состояние

Что я сделал

Я пытался установить viewPager.offscreenPageLimit = 0, но безрезультатно

1 Ответ

0 голосов
/ 11 июля 2019

Это не имеет ничего общего с эпоксидной смолой или библиотекой YouTube. ViewPager на Android загружает соседние фрагменты, поэтому onResume / onPause не работают так, как вы ожидаете в ViewPager. Вы используете AndroidX? Если вы, я рекомендую использовать последнюю версию appcompat, в настоящее время androidx.appcompat:appcompat:1.1.0-beta02.

FragmentStatePagerAdapter имеет новый конструктор: FragmentStatePagerAdapter(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT)

, который будет правильно вызывать onResume / onPause для фрагментов внутри ViewPager, что приведет к лучшей работе в вашем случае.

...