Связь между ViewPager и текущим фрагментом - PullRequest
3 голосов
/ 22 марта 2012

Я использую ViewPager (http://developer.android.com/reference/android/support/v4/view/ViewPager.html) с некоторыми изображениями во фрагментах, и поскольку я хочу поддерживать масштабирование, я расширяю ViewPager и переопределяю:

onInterceptTouchEvent

Следующий шагчтобы определить, увеличено ли изображение. Если оно будет увеличено, я позволю ему обработать событие, в противном случае я передам событие в super.

Моя главная проблема и сердце моеговопрос, определяет ли лучший и наиболее эффективный способ связи между текущим фрагментом и моим ViewPager?

В настоящее время я использую следующее при изменении текущего элемента:

Fragment photoFrag = (Fragment) getAdapter().instantiateItem(this, getCurrentItem()); 

Но этоПохоже, что должен быть лучший способ связи между фрагментом и ViewPage, и я что-то упускаю.

Редактировать : Извините, я забыл упомянуть, что хотел бысвязь должна идти туда-сюда, поэтому я бы хотел, чтобы фрагмент мог обмениваться данными с ViewPager, а пейджер с фрагментом.Я видел пример (URL оставлен на работе), где класс Interface использовался для связи между текущим фрагментом и ViewPager.Поэтому базовое изображение должно сообщить ViewPager, когда оно должно обрабатывать Scroll, когда оно не нужно, когда имитировать прокрутку и т. Д.

Я торопился поднять этот вопрос во время видеовстречи Android

Спасибо

1 Ответ

2 голосов
/ 14 августа 2012

Почему бы не использовать BroadcastReceiver для отправки / получения события? Зарегистрируйте фрагмент (ы), чтобы получить событие, и тогда вам не придется беспокоиться о том, что ваш фрагмент не существует. Не забудьте зарегистрировать / отменить регистрацию получателя в onResume / onPause

...