2

I have search a lot about this solution. I tried remove from mFragmentList and mFragmentTitleList directly. And I also tried call the destroyItem. Many methods have been tried. None of them worked. I have been stuck on this problem for few days. Is there Any answer could help? Thanks.

public final  class OrdersViewPagerAdapter extends android.support.v4.app.FragmentPagerAdapter{
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();

public OrdersViewPagerAdapter(FragmentManager manager) {
    super(manager);
}

@Override
public Fragment getItem(int position) {
    return mFragmentList.get(position);
}

@Override
public int getCount() {
    return mFragmentList.size();
}

public void addFragment(Fragment fragment, String title) {
    mFragmentList.add(fragment);
    mFragmentTitleList.add(title);
}


@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    super.destroyItem(container, position, object);
    if (position <= getCount()) {
        FragmentManager manager = ((Fragment) object).getFragmentManager();
        FragmentTransaction trans = manager.beginTransaction();
        trans.remove((Fragment) object);
        trans.commit();
    }
}

@Override
public CharSequence getPageTitle(int position) {
    return mFragmentTitleList.get(position);
}

public void removeView(String  title, ViewGroup view, TabLayout tabLayout) {
    int index=-1;

    int count=mFragmentTitleList.size();

    for (int i=0;i<count;i++){
        String mtitle=mFragmentTitleList.get(i);
        if (mtitle.equals(title)){
            index=i;
            break;
        }
    }
    if (index!=-1) {
        mFragmentTitleList.remove(index);
        tabLayout.removeTabAt(index);
        destroyItem(view,index,mFragmentList.get(index));



        notifyDataSetChanged();
    }
}

}

MYC
  • 21
  • 4
  • Possible duplicate of [My fragments in viewpager tab dont refresh](http://stackoverflow.com/questions/14773061/my-fragments-in-viewpager-tab-dont-refresh) – VishnuSP May 08 '17 at 12:01
  • What is your issue? You want to remove a fragment from view pager.. Ex: if you have 4 fragments, after some operation, now you only want three. right? – Yashika May 08 '17 at 12:24
  • If this is your issue, then override "getPosition" method in PagerAdapter, and return POSITION_NONE; instead of default return. // This line creates adapter view everytime we call adapter.notifyDataSetChanged() – Yashika May 08 '17 at 12:25
  • @YashikaK, yes I want to remove one fragment and a tab. I will try to override "getPosition" – MYC May 09 '17 at 13:59

0 Answers0