My View Pager состоит из фотографий, аудио и видео. Audio View состоит из кнопки воспроизведения для воспроизведения звука. Когда я нажимаю кнопку воспроизведения, она исчезает, и начинается воспроизведение звука. Когда я останавливаю звук или когда трек завершен, кнопка воспроизведения снова становится видимой . Если я проведу пальцем по экрану во время воспроизведения звука и перейду к следующему представлению, звук остановится, но проблема в том, что если я перейду к следующему представлению, проведя пальцем по экрану во время воспроизведения звука, а затем вернусь к звуковому представлению, тогда я не смогу увидеть кнопку воспроизведения на пейджере просмотра. Однако, если я проведу пальцем к следующему представлению или к следующим представлениям, а затем вернусь к звуковому представлению, я смогу увидеть кнопку воспроизведения в звуковом представлении. То же самое происходит и для возврата. предыдущее представление, проведя пальцем по экрану аудио во время воспроизведения звука, а затем вернувшись к просмотру звука, я не вижу кнопку воспроизведения на пейджере просмотра. Однако, если я проведу пальцем к предыдущему к предыдущему представлению или к последующим предыдущим представлениям, а затем вернусь к аудио, то я вижу кнопку воспроизведения на View Pager ..

0
Android Developer 1 Дек 2014 в 18:38

2 ответа

Лучший ответ

Причина в том, что когда активен фрагмент 0, то Android также инициирует смежные фрагменты, в данном случае только 1. Когда вы проводите пальцем до фрагмента 1, так как фрагмент 0 уже инициирован, android только инициирует фрагмент 2. Это причина, когда Вы перемещаетесь назад от фрагмента 1 к фрагменту 0, вы не видите кнопку воспроизведения.

Теперь, когда вы перейдете к фрагменту 2, а затем вернетесь к фрагменту 1, фрагмент 0 будет обновлен, поэтому вы можете снова увидеть кнопку.

Честно говоря, я боролся с той же проблемой. Это неоднократно обсуждалось в StackOverflow. Я нашел следующий пост наиболее полезным.

Обновить данные в ListFragment как часть ViewPager

1
Community 23 Май 2017 в 15:06
+один за твой ответ..вот в чем проблема..но я не могу найти решение..Рад, если ты можешь помочь мне с кодом
 – 
Android Developer
2 Дек 2014 в 07:52
Я попытался ввести int pos=position-1;if(position>=1) {ImagePagerAdapter a = (ImagePagerAdapter) pager.getAdapter(); a.instantiateItem (пейджер, позиция); } внутри onPageSelected, но не работает должным образом..
 – 
Android Developer
2 Дек 2014 в 08:38
1
Если вы все еще боретесь, по этой ссылке есть рабочий пример точка с запятой. blogspot.in/2014/12/…
 – 
Phillip Dunley
12 Дек 2014 в 12:27

То, что вы описываете, - это принцип работы ViewPager.

В любой момент он содержит только текущую страницу, одну слева и одну справа. При прокрутке страницы могут быть уничтожены в зависимости от того, где вы находитесь.

В любом случае, если вы хотите управлять переключением между страницами, вы можете просто добавить слушателя в ViewPager, используя setOnPageChangeListener .

Таким образом, вы можете определить, какая страница была выбрана раньше, а какая - сейчас.

Если хотите, вы можете опубликовать проект, и я посмотрю, что я могу сделать, чтобы его исправить.

Я также предлагаю использовать фрагменты вместо представлений, чтобы немного упростить управление жизненным циклом каждой страницы. Кроме того, если вы хотите сохранить состояние страницы, вы можете использовать FragmentStatePagerAdapter .

0
android developer 2 Дек 2014 в 22:39