2013-07-05 15 views
8

Frage: Wie bekomme ich die aktuelle Ansicht eines ViewPager FragmentStatePagerAdapter?Android: ViewPager FragmentStatePagerAdapter erhalten aktuelle Ansicht

  1. Ich habe fast 24 Stunden damit verbracht und suchte überall nach den passenden Lösungen.
  2. Holen Sie sich die aktuelle Position ist einfach, ich habe das schon. Dies wird aktuell View.
  3. FragmentStatePagerAdapter wird benötigt, nicht PagerAdapter.

    • This solution vorgeschlagen setTag und findViewWithTag über instantiateItem(View container, int position). Dies ist für PagerAdapter.
    • jedoch in FragmentStatePagerAdapter die instantiateItem hat eine Viewgroup param nichtAnsicht param: instantiateItem(**ViewGroup** container, int position)

So hoffe ich es nicht unmöglich ist, oder? Bitte helfen Sie!

Antwort

4

Sie können den setTag Trick mit der Ansicht, die Sie in Ihrer Methode instantiateItem Rückkehr sind.

Hier verwende ich einen ViewPager mit PagerAdapter, aber ich denke, dass diese Idee auch für Sie funktionieren könnte.

Also, wenn Sie Ihre Ansichten sind Instanziieren (in PagerAdapter das Verfahren auch instantiateItem (Viewgroup Container, int Position)), sollten Sie setTag zu Ihrer Ansicht verwenden.

So:
view.setTag("view" + position);
return view;

Also, wenn Sie benötigen die aktuelle Ansicht, sollten Sie dies tun: View view = (View) pager.findViewWithTag("view" + pager.getCurrentItem());, wo Pager ist die ViewPager, die Sie es bekommen kann vorbei Parameter von Ihrer Aktivität zu Ihrem Adapter.

+0

Entschuldigung für die späte Antwort und danke für die Hilfe. Wie hast du die 'Ansicht' in 'view.setTag()' erhalten, während der Parameter 'ViewGroup container' ist? – jerrytouille

+0

Sorry für die noch spätere Antwort. Eigentlich ist die Ansicht, über die ich gesprochen habe, die Ansicht, die Sie am Ende von ** instantiateItem ** anzeigen. –

Verwandte Themen