2012-08-05 20 views
7

Pracuję nad aplikacją w Androidzie za pomocą Fragmentów. Mam to trzy zakładki:Zapobieganie pobieraniu następnego fragmentu (karty) z ViewPager

User app screenshot

wiem, że nie jest możliwe, aby uniknąć obciążenia jednego fragmentu z każdej strony (poprzedni i następny), jeśli chodzi o minimalną wartość setOffScreenPageLimit() jest 1, ale to znaczy, że jeśli chcę pokazać ProgressDialog na metodzie onPreExecute wystąpienia AsyncTask uruchomiony w ciągu Downloads Fragment spowoduje to, że kiedy nav do Capturador że ProgressDialog będą koniecznie załadowany? Jeśli tak, nie mam pojęcia, jak poinformować użytkownika, że ​​pobieram pakiety (tak właśnie robi Descargas, aby sparsować trochę XML).

góry dzięki;)

+1

To pytanie jest znakomicie napisane. Stoję przed podobnym wyzwaniem, takim jak to, w którym muszę pokazywać 'Dialogi' w różnych' Fragmentach', ale nie mogę, ponieważ nakładają się one wzajemnie. – tolgap

+0

Miejmy nadzieję, że ktoś nam pomoże. Muszę przyznać, że jestem trochę lub trochę pomieszany z Fragments, ale nie wiem jak rozwiązać ten problem. –

+0

To całkiem głupie, że 'setOffScreenPageLimit()' zawsze domyślnie jest 1. – tolgap

Odpowiedz

4

Osadzanie ProgressBar na fragmencie Downloads. Lub nakładaj nieokreślony pasek postępu na środek fragmentu podczas ładowania.

Dialogi są naprawdę część działalności, to nie ma sensu, że znajduje zastosowanie tylko do jednej ze stron.

Pod koniec dnia, ale jeśli trzeba nalegać na użyciu dialogi, można wdrożyć onPageChangeListener

viewPager.setOnPageChangeListener (OnPageChangeListener);

I można wyciągnąć odpowiednie okno dialogowe, gdy wybrany jest wyznaczony fragment i odwrotnie, kiedy opuścisz.

+0

Dziękuję za odpowiedź. Potem spróbuję zrobić coś spójnego i zgodnie z dobrymi nawykami programowania, biorąc pod uwagę, że dopiero się uczę. Myślę, że dobrym sposobem byłoby wówczas kontrolowanie wydarzeń graficznych, takich jak dialog lub toast, w głównej aktywności, a nie w fragmentach. Byłbym wdzięczny, gdyby ktoś mógł dać mi pomysły. Nie chcę, aby ktokolwiek z was wykonywał moją pracę, ale tylko wskazówki lub instrukcje. –

+0

Odpowiadając na siebie i dzięki Wieprzowinie w końcu zaimplementowałem niezdeterminowany ProgresBar zdefiniowany w layoucie, który ukrywam za pomocą ProgressBar.setVisibility (View.GONE), jeśli fragment Descargas pomyślnie pobrał pakiety, które chcę i tak dalej. Mam nadzieję, że to nie jest odrapane rozwiązanie, ponieważ z moją wiedzą, która nie jest tak zaawansowana, nie mogę nawet zacząć implementować opcji OnPageChangeListener. –

+0

Brzmi doskonale Keyser! Z pewnością możesz używać okien dialogowych z fragmentu, ale fragment w przeglądarce stron jest trochę skomplikowany. Musisz pamiętać, że dialog ma na celu uniemożliwienie użytkownikowi podjęcia jakichkolwiek innych działań. Ale jeśli mają inne rzeczy, które mogą wykonywać w ramach działania podczas oczekiwania, najlepiej nie używać okna dialogowego. Dla mnie oznacza to, że progressdialog jest szybkim hackerem, który zazwyczaj nie powinien trafić do ostatecznych rozwiązań większości ludzi. Możesz prowadzić okna dialogowe z fragmentu, to dobrze, tylko pamiętaj, że użytkownik naprawdę wie/dba o działanie. –

Powiązane problemy