NOTA: Questo è un estratto dal Android Training classe Implementing Effective Navigation.
Per attuare questo (in Android 3.0 o superiore), è possibile utilizzare un ViewPager in collaborazione con l'API ActionBar schede.
Dopo aver modificato la pagina corrente, selezionare la scheda corrispondente. È possibile impostare questo comportamento utilizzando un ViewPager.OnPageChangeListener nel metodo di vostra attività onCreate()
:
@Override
public void onCreate(Bundle savedInstanceState) {
...
mViewPager.setOnPageChangeListener(
new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// When swiping between pages, select the
// corresponding tab.
getActionBar().setSelectedNavigationItem(position);
}
});
...
}
E su selezione di una scheda, passare alla pagina corrispondente nel ViewPager. Per fare questo, aggiungere un ActionBar.TabListener alla scheda durante la creazione utilizzando il metodo newTab()
:
actionBar.newTab()
...
.setTabListener(new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction ft) {
// When the tab is selected, switch to the
// corresponding page in the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
...
}));
fonte
2012-04-13 01:58:04
Hi Roman, Si prega di elaborare un esempio che implementa un adattatore di form per implementare lo scorrimento di layout multi-riquadro contenente più frammenti creati/sostituiti dinamicamente. Sfide: - FragmentManager utilizza un ID risorsa per aggiungere frammenti; Gli ID devono essere univoci tra le pagine (non è possibile specificare un'istanza ViewGroup come contenitore) - Le viste del contenitore devono esistere prima che FragmentManager tenti di ripristinare i frammenti - Istanze rimanenti vs errore di modifica dell'orientamento # 1: NullPointerException intorno a quando FragmentManager tenta di salvare Stato del frammento; # 2: NullPointerException su LoaderInfo.onLoadComplete – user289463
Dovresti fare questa domanda come una nuova domanda. –
Le cose strane accadono se si aggiungono le icone del menu alla barra delle azioni e si utilizza ViewPager in questo modo ... – Maxim