Oto mój przypadek użycia:Jak mogę ponownie użyć instancji fragmentu Androida na różnych fragmentach?
muszę utworzyć 3 karty za pomocą ActionBar Navigation Tabs i używam ActionBarSherlock do osiągnięcia tego celu. Każda z 3 kart jest własna Fragment. Istnieje jednak kilka typowych informacji, które są wyświetlane na każdej z kart (w moim przypadku nazwa produktu, opis). Stworzyłem kolejny Fragment dla tej wspólnej informacji i odwołuję się do tego Fragmentu w każdym z głównych układów Fragmentów, takich jak this.
Oto mój problem:
Chcę ponowne wystąpienie fragment, który pobiera i wyświetla wspólny info. Używam poniższego kodu, ale zawsze wydaje się tworzyć nowe wystąpienie wspólnego fragmentu w każdym z głównych fragmentów.
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();
}
Nie można ponownie użyć tej samej instancji Fragmentu, musisz utworzyć nowy, aby użyć go na innym fragmencie. –
Ugh, właśnie tego się bałem. Sądzę, że będę musiał dodać trochę logiki do tego fragmentu, aby buforować, aby nie pobierać danych wiele razy. – Sanjeev