Qui è il mio caso d'uso:Come posso riutilizzare un'istanza di frammento Android su diversi frammenti?
Ho bisogno di creare 3 schede che utilizzano ActionBar Navigation Tabs, e sto usando ActionBarSherlock per raggiungere questo obiettivo. Ciascuna delle 3 schede è il suo Fragment. Tuttavia, vi sono alcune informazioni comuni che vengono mostrate in ciascuna scheda (nel mio caso, titolo del prodotto, descrizione). Ho creato un altro frammento per questa informazione comune e sto facendo riferimento a questo frammento in ciascuno dei principali layout di Fragment, come this.
Ecco il mio problema:
voglio riutilizzare l'istanza Frammento che recupera e visualizza le informazioni comuni. Sto usando il codice qui sotto, ma sembra sempre creare una nuova istanza del frammento comune in ciascuno dei frammenti principali.
FragmentManager fm = getFragmentManager();
f = (ProductDetailsInfoFragment) fm.findFragmentByTag("prodinfo");
if (f == null) {
Log.d(TAG, "fragment not found...creating new instance");
f = new ProductDetailsInfoFragment();
f.setTargetFragment(this, 0);
fm.beginTransaction().replace(R.id.prod_info_fragment, f, "prodinfo").commit();
}
impossibile riutilizzare la stessa istanza di un frammento, è necessario crearne uno nuovo da utilizzare su un altro frammento. –
Ugh, questo è quello di cui avevo paura. Suppongo che dovrò aggiungere qualche logica nel frammento per la memorizzazione nella cache in modo da non recuperare più volte i dati. – Sanjeev