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!

  • Speichern / aktualisieren Sie die EditText-Daten des Fragments in einem FragmentStatePagerAdapter
  • Entfernen Sie alle Fragmente aus ViewPager, die von FragmentStatePagerAdapter belegt werden
  • FragmentStatePagerAdapter Speicherleck (verschachtelte Fragmente mit Viewpager)
  • Android FragmentStatePagerAdapter gibt den leeren Bildschirm zurück, wenn man mittlere Fragmente neu lädt
  • Unterschied zwischen FragmentPagerAdapter und FragmentStatePagerAdapter
  • Fragment getView () immer wieder Null für Fragmente, die von einem FragmentStatePagerAdapter erstellt wurden
  • Dynamisch überspringen Seiten in ViewPager
  • Fragement existiert nicht mehr für Schlüssel f0: index 1
  • 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.