我正在使用“Tabs Swipe”项目,并且我很难消除片断.
我在做的步骤:
>从数据库中删除选项卡
>从FragmentStatePagerAdapter数据源中删除选项卡
>从actionBar中删除选项卡.
>使用支持FragmentManager删除片段.
问题:
执行删除后,由于某些原因,我仍然可以向右滚动,看到一个空的片段.我不能选择它,它只是反弹.
看起来片段没有被删除,而是将其位置从左侧更改为标签.
我的适配器
public class SectionsPagerAdapter extends FragmentStatePagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { Fragment fragment = new TabFragment(); Bundle args = new Bundle(); args.putInt(TabFragment.ARG_TAB_POSITION,position); fragment.setArguments(args); return fragment; } @Override public int getCount() { return tabsList.size(); } @Override public CharSequence getPageTitle(int position) { return tabsList.get(position).getTitle(); } @Override public void destroyItem(ViewGroup container,int position,Object object) { super.destroyItem(container,position,object); FragmentManager manager = ((Fragment)object).getFragmentManager(); android.support.v4.app.FragmentTransaction trans = manager.beginTransaction(); trans.remove((Fragment)object); trans.commit(); } }
public void removeTab() { mTabTableHandler.deleteTab(tab.getId()); //db tabsList.remove(tabPosition); //data source actionBar.removeTabAt(tabPosition); // actionbar getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit(); // support fragmentmanager tabsList = mTabTableHandler.query(); //requery db mSectionsPagerAdapter.notifyDataSetChanged(); //notify adapter }
欣赏帮助!
解决方法
你可以在这里找到答案 –
Remove Fragment Page from ViewPager in Android
Remove Fragment Page from ViewPager in Android
@Override public int getItemPosition(Object object){ return PagerAdapter.POSITION_NONE; }