Android: обнаружение, когда фрагмент из ViewPager становится видимым внутри Activity - PullRequest
0 голосов
/ 29 сентября 2018

У меня Activity с ViewPager.В действии есть кнопка, которая должна изменять видимость в зависимости от того, какой элемент (фрагмент) отображается на экране.

Проблема: Я не могу получить доступ к кнопке из фрагмента потому что вызов findViewById () возвращает ноль при вызове изнутри фрагмента кода .Я также подумал, что мог бы уведомить активность об изменении состояния фрагмента , но код из документации уже устарел.

Вопрос: Как изменить кнопку внутри действия, когдаконкретный фрагмент появляется / исчезает на экране?

Примечание. Получение текущего фрагмента не является проблемой.Мне нужно обнаружить, что фрагмент изменен .

1 Ответ

0 голосов
/ 29 сентября 2018

Создайте подкласс SimpleOnPageChangeListener внутри вашей деятельности (например, как анонимный внутренний класс).В этом подклассе переопределите onPageSelected() и обновите видимость кнопки на основе выбранного индекса страницы.Затем вызовите addOnPageChangeListener() на вашем ViewPager, предоставив экземпляр подкласса SimpleOnPageChangeListener.

Теперь при каждом изменении страницы в пейджере будет вызываться onPageSelected(),и вы можете обновить видимость кнопки в зависимости от страницы.

...