Android: ViewPager FragmentStatePagerAdapter erhält aktuelle Ansicht

Frage : Wie bekomme ich die aktuelle Ansicht eines ViewPagers 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, habe ich schon das. Dies ist die aktuelle Ansicht .
  3. FragmentStatePagerAdapter ist erforderlich, nicht PagerAdapter .

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

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

  • Android - Versuch, virtuelle Methode aufzurufen 'void android.support.v4.app.Fragment.setMenuVisibility (boolean)' auf eine Nullobjektreferenz
  • Speichern / aktualisieren Sie die EditText-Daten des Fragments in einem FragmentStatePagerAdapter
  • App stürzt beim Zuweisen eines neuen Adapters zu meinem ViewPager ab
  • Fragment getView () immer wieder Null für Fragmente, die von einem FragmentStatePagerAdapter erstellt wurden
  • GetResources aus FragmentStatePagerAdapter
  • ViewPager mit verschiedenen Adaptern für Porträt und Landschaft
  • Zerstöre den Artikel aus dem ViewPager-Adapter, nachdem die Bildschirmausrichtung geändert wurde
  • ViewPager Das erste Fragment ist immer falsch mit FragmentStatePager
  • One Solution collect form web for “Android: ViewPager FragmentStatePagerAdapter erhält aktuelle Ansicht”

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

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

    Also, wenn Sie Ihre Ansichten instanziieren (in PagerAdapter ist die Methode auch instantiateItem (ViewGroup Container, int Position) ), sollten Sie setTag zu Ihrer Ansicht verwenden.

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

    Also, wenn du die aktuelle Ansicht brauchst, solltest du das tun: View view = (View) pager.findViewWithTag("view" + pager.getCurrentItem()); , Wo Pager ist der ViewPager, die Sie bekommen können, übergeben sie von params von Ihrer Aktivität zu Ihrem Adapter.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.