2014-12-14 23 views
6

Desidero combinare un ViewPager orizzontale predefinito con una sorta di vertical ViewPager. Il mio approccio sarebbe che i Frammenti forniti dal ViewPager orizzontale, sottoclassi il ViewPager verticale.android - combina viewpager orizzontale con viewpager verticale

public class SubWebViewFragment extends Fragment, VerticalViewPager { 
} 

Così ogni frammento fornito dal ViewPager orizzontale dovrebbe allo stesso tempo agire come un VerticalViewPager, costruendo una specie di matrice. Inoltre devo avere la possibilità di andare a una certa pagina in questa matrice. Per esempio. Voglio selezionare la pagina 2 del ViewPager orizzontale, e di questa pagina due voglio andare alla pagina tre del ViewPager verticale.

// pseudo code 
HorizontalViewPager.setCurrentItem(1, true); 
activeHorizontalPage.getVerticalViewPager.setCurrentItem(2, true); 

Sono un po 'perso su come affrontare questo problema.

risposta

0

Avete pensato di utilizzare un ListView invece di un viewpager verticale anche provare a controllare il Twowayview library

+0

Penso che ListView non sia realmente possibile. Vedi: http://stackoverflow.com/a/8457633/237690 .. Forse Twowayview è una possibilità. Grazie .. –

12

ho costruito una soluzione che combina un viewpager orizzontale (il genitore) con viewpagers verticali (ogni bambino). Ho calpestato i seguenti metodi su viewpager verticale:

  • public boolean onInterceptTouchEvent(MotionEvent ev)
  • public boolean onTouchEvent(MotionEvent ev)

Quando l'utente attiva quegli eventi in ogni bambino, lo passano al genitore. Quindi, se l'evento è verticale, il figlio lo elabora, altrimenti, se l'evento è orizzontale, il genitore lo elabora.

Dai un'occhiata alla mia libreria DoubleViewPager, dove ho implementato questa strategia.

+0

Non funziona con FragmentPagerAdapter o FragmentStatePagerAdapter. – ycagri

+0

@ycagri No, funziona con DoubleViewPagerAdapter. –

+0

Se DoubleViewPagerAdapter si estende da FragmentPagerAdapater o FragmentStatePagerAdapter, non funziona correttamente. Per la prima colonna, lo scorrimento verticale funziona ma non popola le altre colonne. – ycagri

2

Questo progetto DoubleViewPager su GitHub sembra aver implementato una versione semplice di quello che stai chiedendo. Ha un HorizontalViewPager e un VerticalViewPager personalizzati derivati ​​dalla classe ViewPager che consente la struttura dello stack di pagine richiesta.

Problemi correlati