My View Pager состоит из фотографий, аудио и видео. Audio View состоит из кнопки воспроизведения для воспроизведения звука. Когда я нажимаю кнопку воспроизведения, она исчезает, и начинается воспроизведение звука. Когда я останавливаю звук или когда трек завершен, кнопка воспроизведения снова становится видимой . Если я проведу пальцем по экрану во время воспроизведения звука и перейду к следующему представлению, звук остановится, но проблема в том, что если я перейду к следующему представлению, проведя пальцем по экрану во время воспроизведения звука, а затем вернусь к звуковому представлению, тогда я не смогу увидеть кнопку воспроизведения на пейджере просмотра. Однако, если я проведу пальцем к следующему представлению или к следующим представлениям, а затем вернусь к звуковому представлению, я смогу увидеть кнопку воспроизведения в звуковом представлении. То же самое происходит и для возврата. предыдущее представление, проведя пальцем по экрану аудио во время воспроизведения звука, а затем вернувшись к просмотру звука, я не вижу кнопку воспроизведения на пейджере просмотра. Однако, если я проведу пальцем к предыдущему к предыдущему представлению или к последующим предыдущим представлениям, а затем вернусь к аудио, то я вижу кнопку воспроизведения на View Pager ..
2 ответа
Причина в том, что когда активен фрагмент 0, то Android также инициирует смежные фрагменты, в данном случае только 1. Когда вы проводите пальцем до фрагмента 1, так как фрагмент 0 уже инициирован, android только инициирует фрагмент 2. Это причина, когда Вы перемещаетесь назад от фрагмента 1 к фрагменту 0, вы не видите кнопку воспроизведения.
Теперь, когда вы перейдете к фрагменту 2, а затем вернетесь к фрагменту 1, фрагмент 0 будет обновлен, поэтому вы можете снова увидеть кнопку.
Честно говоря, я боролся с той же проблемой. Это неоднократно обсуждалось в StackOverflow. Я нашел следующий пост наиболее полезным.
Обновить данные в ListFragment как часть ViewPager
То, что вы описываете, - это принцип работы ViewPager.
В любой момент он содержит только текущую страницу, одну слева и одну справа. При прокрутке страницы могут быть уничтожены в зависимости от того, где вы находитесь.
В любом случае, если вы хотите управлять переключением между страницами, вы можете просто добавить слушателя в ViewPager, используя setOnPageChangeListener .
Таким образом, вы можете определить, какая страница была выбрана раньше, а какая - сейчас.
Если хотите, вы можете опубликовать проект, и я посмотрю, что я могу сделать, чтобы его исправить.
Я также предлагаю использовать фрагменты вместо представлений, чтобы немного упростить управление жизненным циклом каждой страницы. Кроме того, если вы хотите сохранить состояние страницы, вы можете использовать FragmentStatePagerAdapter .
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.