Używam ViewPager, który przechowuje 3 fragmenty, każdy fragment ładuje listę. Problem polega na tym, że aplikacja działa po raz pierwszy i przeskakuję do następnego fragmentu, ten fragment potrzebuje czasem załadować (około 2 sekundy), zanim jego widok będzie widoczny. To bardzo dziwne zachowanie. Wszystko czego chcę, to po uruchomieniu aplikacji, wszystkie fragmenty w ViewPager powinny być gotowe dla użytkownika, więc przesuwając fragmenty, nie ma czasu oczekiwania. Jak mogę to zrobić?Wstępne ładowanie fragmentu widoku w ViewPager przy pierwszym uruchomieniu
Odpowiedz
Po prostu wywołaj setOffscreenPageLimit()
w onCreate() (po zainicjowaniu ViewPager). OffscreenPageLimit określa liczbę stron, które powinny zostać zachowane po obu stronach bieżącej strony (w twoim przypadku 2). Dzięki temu wszystkie twoje fragmenty zostaną utworzone.
(An inne (zaleca) możliwość to zwiększyć wydajność swoich list lub listadapters, ponieważ czas ładowania 2 sekundy nie brzmi dobrze)
Właściwie ustawienie "2" zapewniłoby zachowanie wszystkich 3 fragmentów. Ta wartość określa liczbę stron, które powinny zostać zachowane na ** z obu stron bieżącej strony **, a nie na całkowitą liczbę stron. –
Tak, wiem. Ale możesz również ustawić limit na "100" i nadal działa ;-) To był tylko przykład, oczywiście, że może ustawić limit na "2", jeśli chce. – Namenlos
Cóż, w takim razie dlaczego mówimy * "w twoim przypadku ** 3 **" * w twojej odpowiedzi? To nie jest poprawne, a to sygnalizuje mi, że nie wiesz, i dlatego pierwotnie dodałem komentarz, aby to wskazać. –
- 1. Wstępne ładowanie następnej (lub poprzedniej) strony w ViewPager
- 2. Jak wyświetlić widok przy pierwszym uruchomieniu?
- 3. ViewPager wewnątrz fragmentu wydania
- 4. Ładowanie fragmentu mapy Google Android zarządzanego przez ViewPager
- 5. Użyj jednego fragmentu w ViewPager wiele razy
- 6. Debugowanie aplikacji iOS przy pierwszym uruchomieniu
- 7. Wstępne ReactJS ładowanie danych
- 8. Wstępne ładowanie zdjęć
- 9. Wstępne ładowanie obrazów tła
- 10. Wstępne ładowanie tekstur w unity3d
- 11. Optymalne wstępne ładowanie/wstępne pobieranie obrazów w UICollectionView i UITableView
- 12. Szyny 3 ładowanie wszystkich modeli przy uruchomieniu
- 13. Wstępne ładowanie strony internetowej w systemie Android (przy użyciu WebView?)
- 14. onResume() nie wezwał fragmentu ViewPager przy użyciu niestandardowego Loader
- 15. Sklep iCloud KeyValue nie został rozpoznany przy pierwszym uruchomieniu.
- 16. Android odświeżyć ViewPager wewnątrz fragmentu
- 17. iOS: Wstępne ładowanie wideo AVPlayer
- 18. Pokaż ekran przy pierwszym uruchomieniu tylko w iOS
- 19. Uruchom polecenie w Docker Container tylko przy pierwszym uruchomieniu
- 20. Jak umieścić viewpager wewnątrz fragmentu w Androidzie?
- 21. Wstępne ładowanie ng-view dla płynniejszej nawigacji
- 22. Jak utworzyć ładowanie wstępne w AS3
- 23. Wstępne ładowanie ostrzeżeń Sphinx: nie można otworzyć
- 24. Wstępne ładowanie Glide nie zapisuje w pamięci podręcznej
- 25. Opóźnienie z instalacją DirectorySearcher FindOne() przy pierwszym uruchomieniu
- 26. Jak zmienić układ programowania po ustawieniu go przy pierwszym uruchomieniu?
- 27. Jak otworzyć aplikację NavigationDrawer tylko przy pierwszym uruchomieniu aplikacji?
- 28. Animacja jquery nie działa poprawnie przy pierwszym uruchomieniu
- 29. Gradle nie działa z synchronizacją nawet przy pierwszym uruchomieniu
- 30. Fragmenty w ViewPager nie są ładowane po odtworzeniu fragmentu zawierającego.
Używasz FragmentPageAdapter lub FragmentStatePageAdapter? – Delyan
Co można rozważyć, to buforowanie adapterów list fragmentów w działaniu (lub w pagera). Zapobiegnie to ponownemu załadowaniu adapterów przy każdej zmianie strony. – AedonEtLIRA
@Delyan Używam FragmentPagerAdapter –