5

mio caso d'uso:Nascondere/mostra la barra delle operazioni contestuale programmazione

Ho un'attività con un ViewPager come unico elemento di vista, allestito con tre Fragment s per le sue tre pagine (utilizzando un FragmentPagerAdapter). Uno di questi frammenti è un ListFragment, mentre gli altri due regolari Fragment s contenenti alcune infografiche.

L'elenco nel ListFragment consente di "controllare" gli elementi e il controllo degli elementi fa apparire la barra di azione contestuale, presentando un elenco di azioni possibili sugli elementi selezionati/controllati.

Il mio problema:

Quando seleziono un paio di voci di elenco, il CAB si presenta. Ma quando cambio pagina, il CAB rimane visibile, presentando le azioni. A peggiorare le cose, il ViewPager sembra a volte distruggere la vista del frammento della lista - quindi selezionare le azioni genera un'eccezione "java.lang.IllegalStateException: Content view not yet created".

Le mie domande:

  1. Come faccio ad avere il CAB a scomparire quando l'utente si allontana dalla pagina ListFragment?
  2. (opzionale) Come si ottiene la visualizzazione del CAB quando lo ListFragment è indietro e alcuni elementi sono ancora controllati.

risposta

1

è necessario aggiungere prima un ViewPager.OnPageChangeListener con ViewPager.OnPageChangeListener al vostro viewPager.

Nel metodo suPageSelected chiamare un metodo nel proprio ListFragment per chiudere il CAB.

EDIT:

per ottenere la corrente frammento attivo è possibile utilizzare è tag. L'etichetta può essere computated con questo metodo:

private static String makeFragmentName(int viewId, int index) { 
    return "android:switcher:" + viewId + ":" + index; 
} 

dove viewId è l'id del viewpager e dell'indice l'indice scheda (posizione)

+0

Come si accede al ListFragment appropriato dal ViewPager? – Joshua

+1

Ho modificato la risposta per aggiungere le informazioni su come accedere al frammento – david

+0

Come mai ViewPager.OnPageChangeListener è presente due volte? È un errore di battitura o dovrebbe significare qualcos'altro? – RightHandedMonkey

Problemi correlati