Android: ViewPager FragmentStatePagerAdapter erhält aktuelle Ansicht

8

Frage : So erhalten Sie die aktuelle Ansicht eines ViewPager FragmentStatePagerAdapter?

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

    • Diese Lösung schlug setTag und findViewWithTag vor über instantiateItem(View container, int position) . Dies ist für PagerAdapter.
    • Jedoch in FragmentStatePagerAdapter hat das instantiateItem einen ViewGroup Parameter nicht Anzeigen param: instantiateItem(**ViewGroup** container, int position)

Ich hoffe also, dass es nicht unmöglich ist, oder? Bitte helfen Sie!

    
jerrytouille 05.07.2013, 17:28
quelle

1 Antwort

4

Sie können den Trick setTag mit der Ansicht verwenden, die Sie in Ihrer Methode instanziateItem zurückgeben.

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

Wenn Sie also Ihre Ansichten instanziieren (in PagerAdapter ist die Methode auch instanziateItem (ViewGroup container, int position) ), sollten Sie setTag zu Ihrer Ansicht.

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

Wenn Sie also die aktuelle Ansicht benötigen, sollten Sie Folgendes tun: View view = (View) pager.findViewWithTag("view" + pager.getCurrentItem()); , wobei Pager der ViewPager ist, den Sie parameterübergreifend übergeben können Ihre Aktivität zu Ihrem Adapter.

    
Rodrigo Venancio 15.07.2013 19:43
quelle