Dynamisch entfernen Sie ein Element aus einem ViewPager mit FragmentStatePagerAdapter

Gibt es ganz wenige Diskussionen um dieses Thema

Habe ich versucht verschiedene Lösungen (einschließlich der Aufhebungs-mit POSITION_NONE)
. Aber ich noch weiß nicht, wie man ein Element löschen, richtig.

Was passiert ist

  • entweder bekomme ich eine leere Seite (also das fragment ist zerstört, aber das
    instantiateItem nicht genannt wurde, für einen Ersatz)
  • oder das ganze stürzt ab, vermutlich, weil die Art und Weise der Android verwaltet die
    fragment-Instanzen nicht übereinstimmen, wie ich halten Sie in meinem
    arraylist/sparsearray

Hier s meine adapter

private class DatePickerPagerAdapter extends FragmentStatePagerAdapter {

    ArrayList<Fragment> registeredFragments = new ArrayList<Fragment>();

    public DatePickerPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return CreateWishFormDatePaginationFragment.newInstance(position);
    }

    @Override
    public int getItemPosition(Object object){ //doesnt change much.. 
        return PagerAdapter.POSITION_NONE;
    }

    @Override
    public int getCount() {
        return iPageCount;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        Fragment fragment = (Fragment) super.instantiateItem(container, position);
        registeredFragments.add(position, fragment);
        return fragment;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        super.destroyItem(container, position, registeredFragments.get(position));
    }

    public void removePage(ViewGroup pager, int position) {
        destroyItem(pager, position, null);
        registeredFragments.remove(position);
        iPageCount--;
        pagerIndicator.notifyDataSetChanged();
        pagerAdapter.notifyDataSetChanged();
    }

    public void addPage() {

        iPageCount++;
        pagerIndicator.notifyDataSetChanged();
        pagerAdapter.notifyDataSetChanged();
    }
}

Ich bin mit einem view pager mit ViewPagerIndicator und ich möchte in der Lage sein, entfernen Sie eine Seite dazwischen, zum Beispiel.

Daher bleibt die Frage, was ist der richtige Weg, Umgang mit hinzufügen und entfernen von Fragmenten in einem ViewPager?

Dank!

InformationsquelleAutor Orkun Ozen | 2015-01-23

Schreibe einen Kommentar