2013-07-05 13 views
8

Pytanie: Jak uzyskać bieżący widok ViewPager FragmentStatePagerAdapter?Android: ViewPager FragmentStatePagerAdapter pobierz bieżący widok

  1. Spędziłem prawie 24 godziny na tym i szukałem wszędzie dopasowanych rozwiązań.
  2. Zdobądź aktualną pozycję jest łatwe, już to mam. To jest aktualny Wyświetl. Wymagane jest
  3. FragmentStatePagerAdapter, a nie PagerAdapter.

    • This solution zasugerował setTag i findViewWithTag poprzez instantiateItem(View container, int position). To jest dla PagerAdapter.
    • Jednak w FragmentStatePagerAdapterinstantiateItem ma ViewGroup param nieZobacz param: instantiateItem(**ViewGroup** container, int position)

więc mam nadzieję, że nie jest to niemożliwe, prawda? Proszę pomóż!

Odpowiedz

4

Można użyć setTag sztuczkę z widokiem jesteś powracającego w instantiateItem metody.

Tutaj używam ViewPagera z PagerAdapter, ale myślę, że ten pomysł może również zadziałać.

Więc, kiedy są instancji swoje poglądy (w PagerAdapter metoda jest również instantiateItem (pojemnik ViewGroup, int pozycja)), należy użyć setTag do widzenia.

Jak to:
view.setTag("view" + position);
return view;

Więc, kiedy potrzebujemy bieżący widok, należy zrobić to: View view = (View) pager.findViewWithTag("view" + pager.getCurrentItem());, gdzie pager jest ViewPager, które można dostać przepuszczenie go przez z Twojej aktywności do adaptera.

+0

Przepraszam za spóźnioną odpowiedź i dziękuję za pomoc. Jak dostałeś "widok" w swoim "view.setTag()", podczas gdy param to "ViewGroup container"? – jerrytouille

+0

Przepraszamy za jeszcze późniejszą odpowiedź. W rzeczywistości widok, o którym mówiłem, to widok, który powrócisz na końcu ** instantiateItem **. –

Powiązane problemy