Czy można wielokrotnie używać jednego fragmentu w przeglądarce stron? Próbuję zbudować dynamicznie aktualizowany interfejs użytkownika przy użyciu ViewPager. Chcę użyć tego samego projektu, w zasadzie ten sam fragment z różnymi danymi dla każdej strony, jak adapter widoku list.Użyj jednego fragmentu w ViewPager wiele razy
Odpowiedz
Możesz utworzyć instancję tej samej klasy Fragment dla każdej strony w ViewPager, przekazując pozycję ViewPagera, aby kontrolować, co wyświetlić. Coś takiego:
public class MyFragment extends Fragment {
private int mIndex;
public MyFragment(int index) {
mIndex = index;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
switch(mIndex){
case 0:
// do you things..
case 1:
// etcetera
}
}
}
wtedy w was FragmentPagerAdapter:
public static class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
return new MyFragment(position);
}
}
ten sposób można ponownie wykorzystać większość kodu zmienia tylko to, czego potrzebujesz w rachunku switch/case.
ale nie możesz utworzyć niepustego konstruktora klasy fragmentów –
Źle zrozumiałeś koncepcję class
versus object of class
. Twój MyFragment.java
kod źródłowy definiuje class
które zamieni się „żyjącym” przy każdym ty instancję go new
operatora (new MyFragment();
) - tworzy object
który jest instance
Twojego class
. O ile celowo temu nie zapobiegniesz (np. Za pomocą wzorca Singleton), możesz wykonać dowolną liczbę instances
z class
, w ten sam sposób, w jaki możesz zrobić tyle ciastek, używając pojedynczej receptury. Dotyczy to również fragmentów.
Tak długo, jak utworzyć oddzielnyobject
(aka powiedział instance
) Twojego class
dla każdej strony, powinieneś być w stanie robić to, co chcesz.
czy możesz podać próbkę dla powyższego wyjaśnienia ..? – Harsha
- 1. Użyj jednego CTE wiele razy
- 2. ViewPager wewnątrz fragmentu wydania
- 3. Android odświeżyć ViewPager wewnątrz fragmentu
- 4. Użyj backstack z ViewPager
- 5. Zapobieganie pobieraniu następnego fragmentu (karty) z ViewPager
- 6. Jak umieścić viewpager wewnątrz fragmentu w Androidzie?
- 7. Zapisz wiele razy w Cakephp
- 8. Wiązanie i odszyfrowywanie usługi Android do/z Fragmentu (w ViewPager)
- 9. połączeń onStart() fragmentu przed wyświetlać Viewpager, navigation_mode_tabs
- 10. Android: Viewpager wewnątrz fragmentu szuflady nawigacji
- 11. Deklarowanie zmiennych wiele razy
- 12. Wiele stron jednocześnie na ViewPager
- 13. NSNotificationCenter dzwoni wiele razy
- 14. StateChangeStart wyzwalanie wiele razy
- 15. Fragmenty w ViewPager nie są ładowane po odtworzeniu fragmentu zawierającego.
- 16. Różne tytuły dla każdego fragmentu w moim viewpager
- 17. Dostęp do fragmentu nadrzędnego ViewPager w podrzędnym fragmencie pagera
- 18. Jak mogę uzyskać odwołanie do Fragmentu w ViewPager?
- 19. Wstępne ładowanie fragmentu widoku w ViewPager przy pierwszym uruchomieniu
- 20. Android: Wiele przekąsek w osobnych Fragmentach (ViewPager)
- 21. Część fragmentu wewnątrz ViewPager uzyskiwanie obcięte na dole ekranu (Android)
- 22. Użyj fragmentu Wordpress z linkiem "więcej"? Dokumentacja
- 23. Android, fragment mapy google i viewpager - Błąd pompowania fragmentu klasy
- 24. fragment onCreateView o nazwie wiele razy
- 25. ViewPager zagnieżdżony w ViewPager
- 26. Ładowanie fragmentu mapy Google Android zarządzanego przez ViewPager
- 27. TabLayout z ViewPager nie działa wewnątrz fragmentu Android
- 28. Chrome wysyła żądanie wiele razy.
- 29. onResume() nie wezwał fragmentu ViewPager przy użyciu niestandardowego Loader
- 30. CNContactStoreDidChangeNotification jest uruchamiany wiele razy
AFAIK, to nie zadziała. Możesz użyć 'GestureDetector', aby obejrzeć przeciągnięcia na istniejącym fragmencie. – CommonsWare
BTW, aby wyjaśnić, zakładam, że masz na myśli, że chcesz użyć pojedynczego fragmentu * instancji * - jeśli masz na myśli, że chcesz użyć tylko jednego fragmentu * klasy *, to jest idealnie w porządku. – CommonsWare