Android 查看适配器中的适配器刷卡问题

Android 查看适配器中的适配器刷卡问题,android,android-fragments,Android,Android Fragments,实际上,我的应用程序中有4个片段,我通过向左或向右滑动来切换片段。我使用查看寻呼机来滑动片段,但是如果我滑动并且片段B显示但片段C的后端功能运行,则会出现问题。如果我转到C,那么D的后端功能将运行。在片段A处,片段A的第一个后端功能运行,然后它自动转移到片段B,但前端视图是片段A 这是适配器 public class TabsPagerAdapter extends FragmentPagerAdapter { private int mNumTabs; public Tab

实际上,我的应用程序中有4个片段,我通过向左或向右滑动来切换片段。我使用查看寻呼机来滑动片段,但是如果我滑动并且片段B显示但片段C的后端功能运行,则会出现问题。如果我转到C,那么D的后端功能将运行。在片段A处,片段A的第一个后端功能运行,然后它自动转移到片段B,但前端视图是片段A

这是适配器

public class TabsPagerAdapter extends FragmentPagerAdapter {

    private int mNumTabs;

    public TabsPagerAdapter(FragmentManager fm, int numTabs) {
        super(fm);
        this.mNumTabs= numTabs;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {

            case 0:
                PersonalSettings tab0 = new PersonalSettings();

                return tab0;
            case 1:
                Health tab1 = new Health();
                return tab1;
            case 2:
                Statistics tab2 = new Statistics();
                return tab2;
             case 3:
                Motivation tab3 = new Motivation();
                return tab3;
            default:
                return null;
        }
    }

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

}
这是主要活动

  viewPager = (ViewPager) findViewById(R.id.pager);
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager(),4);
        viewPager.setAdapter(mAdapter);
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

如果你想要更多的代码,我会给你,因为viewpager会在当前项目旁边预加载项目,以提高用户体验(在你的情况下,项目就是片段)
您可以将
offscreenPageLimit
设置为ViewPager以限制它:

viewPager.setOffscreenPageLimit(1);

但是如果您这样做,您会发现每次输入时片段都会重新加载,我认为这不是一个好的做法。

在FragmentpagerAdapter中重写destroyItem方法

 @Override
 public void destroyItem(ViewGroup container, int position, Object object) {
   // remove your fragment obj from here
 }

我的错,offscreenPageLimit的默认值和最小值为1,这意味着至少有1个offscreen。如果你真的讨厌预加载,你应该试试导航+片段,它基本上不支持滑动,但不会预加载