2013-02-06 28 views

Odpowiedz

37

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.

+0

A więc jaka jest alternatywa do tego, gdy fragment zostanie dodany w normalnym działaniu.? – AndroidGuy

+0

Jak zadzwonić ręcznie? Czy powinniśmy sprawdzić zwracane wartości isAdded(), isHidden() ..? isVisible() zawsze zwraca wartość false. – AndroidGuy

+0

@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

0

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.

Documentation

+1

Czytałem że .. To nie mówić o systemie. Dzięki i tak. – vivek

0

Nie dla Androida mniej niż wersja 15 i Android Biblioteki Wsparcia mniej niż rewizji 11.

+2

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

Powiązane problemy