Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – Tabs ViewPager FragmentStatePagerAdapter – 如何清除片段?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用“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

您的代码似乎缺少覆盖以下适配器的方法

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

解释为什么这样“奇怪”的解决方案可以在我提供给你的链接的答案中找到.

大佬总结

以上是大佬教程为你收集整理的android – Tabs ViewPager FragmentStatePagerAdapter – 如何清除片段?全部内容,希望文章能够帮你解决android – Tabs ViewPager FragmentStatePagerAdapter – 如何清除片段?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。