Czy metoda jest wywoływana przez system, czy
czy nazywamy ją ręcznie?Czy Fragment.setUserVisibleHint() jest wywoływana przez system Android?
Odpowiedz
Patrząc na sources, wygląda jak ten system jest przeznaczony głównie dla fragmentów umieszczone w pager. Ty (lub implementacja pager fragmentu na przykład) powinna ustawić go jako podpowiedź ("Podpowiedź dostarczona przez aplikację" jako komentarz w źródle Fragment
), tak aby mógł na przykład odłożyć swoje ładowanie (inicjalizacja) jeśli nie jest widoczny i ustaw priorytet ładowanie widocznych fragmentów (typowe potrzeby, gdy są używane ponownie w pagerach).
Uwaga jednak, że FragmentPagerAdapter korzysta z tego i właściwie nazywa setUserVisibleHint()
na jej fragmentów, dlatego myślę, że widać niektórzy ludzie doradzanie na przykład przesłonić setUserVisibleHint()
, aby wiedzieć, kiedy fragment staje się widoczny dla użytkownika lub nie (a to działa tylko wtedy, gdy fragment jest wewnątrz FragmentPagerAdapter
, a nie po prostu umieścić w zwykłym układzie działania na przykład).
Aby odpowiedzieć jednoznacznie: wywołujesz go ręcznie, a FragmentPagerAdapter
również wywołuje go ręcznie.
Z dokumentacji:
Ustaw wskazówkę na temat tego, czy system ten fragment UI jest aktualnie widoczne dla użytkownika. Ta wskazówka jest ustawiona na wartość true i jest trwała w przypadku zapisywania i odtwarzania stanu instancji fragmentu.
Aplikacja może ustawić wartość false, aby wskazać, że interfejs fragmentu jest przewijany poza widoczność lub w inny sposób nie jest bezpośrednio widoczny dla użytkownika. System może wykorzystać to do priorytetyzacji operacji, takich jak aktualizacje cyklu życia fragmentów lub zachowanie porządku ładującego.
Parametry isVisibleToUser true, jeśli interfejs użytkownika tego fragmentu jest aktualnie widoczny dla użytkownika (domyślnie), a jeśli nie, to false.
Brzmi tak, jakby był ustawiony na True i można go ustawić na False, jeśli chcesz.
Czytałem że .. To nie mówić o systemie. Dzięki i tak. – vivek
Nie dla Androida mniej niż wersja 15 i Android Biblioteki Wsparcia mniej niż rewizji 11.
Jest to część biblioteki wsparcia v4 i używam jej teraz na Nexus One, z uruchomionym API 10, bez żadnych problemów. Nie wydaje się, aby istniał jakikolwiek powód, dla którego nie będzie to działało aż do API 4. – gMale
- 1. Wykorzystanie danych przez system Android LocationManager
- 2. Obsługa języków Azerbejdżanu przez system Android 2.2?
- 3. Running Android Testy setup() jest wywoływana wielokrotnie
- 4. Czy IDisposable.Dispose() jest wywoływana automatycznie?
- 5. Android/Java: onProgressUpdate() nie jest wywoływana?
- 6. Czy wartość zwrócona przez system() jest taka sama jak "$?"?
- 7. Czy bezpieczny system statyczny w systemie Android?
- 8. Czy system Android wymaga dostępu do roota?
- 9. System Android LocalFileSystem Phonegap nie jest zdefiniowany
- 10. System Android Color Constants
- 11. Jak stwierdzić, czy strona jest wywoływana przez Ajax, czy też na własną rękę?
- 12. Kiedy wywoływana jest metoda onSizeChanged()?
- 13. Kiedy wywoływana jest metoda layoutSubviews?
- 14. Usługa onPostExecute nie jest wywoływana
- 15. NumerOfSections jest wywoływana? iOS
- 16. Android klienta Układ - OnDraw() nigdy nie jest wywoływana
- 17. Jak zbudować bufor protokołu przez system Android NDK
- 18. Metoda WWW nie jest wywoływana przez jquery z funkcji javascript
- 19. iOS5 Storyboard UIViewController, która metoda init jest wywoływana przez storyboard?
- 20. Dlaczego wywoływana jest $ HTTP_RAW_POST_DATA?
- 21. forwardInvocation nie jest wywoływana?
- 22. accessoryButtonTappedForRowWithIndexPath: nie jest wywoływana.
- 23. Android BLE- Jak wywoływana jest metoda onScanResult w ScanCallback?
- 24. Przeszukiwana aktywność jest wywoływana dwukrotnie
- 25. Co to jest natywny system Android z java?
- 26. Skąd mam wiedzieć, czy system jest włączony?
- 27. Czy system Windows jest zgodny z nadzorem?
- 28. Jak sprawdzić, czy zdalny system jest osiągalny?
- 29. Metoda wirtualna nie jest wywoływana
- 30. Układ Android Zachowanie nie jest wywoływana, gdy dziecko CollapsingToolbarLayout
A więc jaka jest alternatywa do tego, gdy fragment zostanie dodany w normalnym działaniu.? – AndroidGuy
Jak zadzwonić ręcznie? Czy powinniśmy sprawdzić zwracane wartości isAdded(), isHidden() ..? isVisible() zawsze zwraca wartość false. – AndroidGuy
@AndroidGuy Jeśli nie zaimplementujesz klasy, która zarządza fragmentami (np. Pager fragmentu), ** nie potrzebujesz **, aby wywołać 'Fragment # setUserVisibleHint'. Jeśli więc dodasz fragment do działania, nie musisz się tym przejmować. Aby uzyskać lepszą pomoc, sugeruję wyjaśnienie, co * chcesz zrobić * (Twój problem) i wyszukanie go w StackOverflow, lub zadaj nowe pytanie, jeśli żadna nie pasuje idealnie do twojego problemu. – desseim