MODIFICA: Sto parlando di ViewPager qui, non di ViewFlipper.
Il vantaggio di utilizzare ViewPager è che è molto semplice da utilizzare. Devi semplicemente creare un FragmentPagerAdapter e compilare un paio di campi semplici. Di seguito è riportato un esempio che ho scritto per visualizzare gli elementi che vengono passati dalla classe padre.
public static class DashboardPagerAdapter extends FragmentPagerAdapter {
private static final int NUM_ITEMS_PER_SCREEN = 12;
private List<View> mAllItems;
private int mNumScreens;
public DashboardPagerAdapter(FragmentManager fm, List<View> allItems) {
super(fm);
mAllItems = allItems;
mNumScreens = (int) Math.ceil(mAllItems.size()
/(float) NUM_ITEMS_PER_SCREEN);
Log.d(TAG, "num screens: " + mNumScreens);
}
@Override
public int getCount() {
return mNumScreens;
}
@Override
public Fragment getItem(int position) {
DashboardScreenFragment screen = DashboardScreenFragment
.newInstance();
for (int i = position * NUM_ITEMS_PER_SCREEN; i < (position + 1)
* NUM_ITEMS_PER_SCREEN; i++) {
if (i >= mAllItems.size()) {
break;
}
screen.addChild(mAllItems.get(i));
}
return screen;
}
}
E la sua creazione è super semplice:
final DashboardPagerAdapter adapter = new DashboardPagerAdapter(
getFragmentManager(), mAllButtons);
Contrariamente a quanto @ sebap123 Detto questo, è possibile utilizzare frammenti con android v4 e soprattutto con la libreria di supporto; vedi http://developer.android.com/sdk/compatibility-library.html per i dettagli, ma in realtà si tratta solo di mettere il file jar nella directory/libs.
BTW, si noti che con ViewPager, ogni "pagina" è a sua volta un frammento.
Per quanto riguarda l'eventuale miglioramento delle prestazioni, dipende da cosa si sta confrontando. Consiglio vivamente di provare ViewPager e solo dopo essermi preoccupato dei problemi di prestazioni. Come diceva Donald Knuth, "dovremmo dimenticare le piccole efficienze, diciamo circa il 97% delle volte: l'ottimizzazione prematura è la radice di tutto il male".
In ogni caso, se si dispone di un numero elevato di pagine, vedere http://developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html per un adattatore più appropriato.
fonte
2012-01-30 04:10:24
Se si desidera un'analisi delle prestazioni, è necessario farlo da soli. Lo stack non è generalmente adatto a rispondere a questo tipo di domande. – Warpzit