Android 查看适配器中的适配器刷卡问题
实际上,我的应用程序中有4个片段,我通过向左或向右滑动来切换片段。我使用查看寻呼机来滑动片段,但是如果我滑动并且片段B显示但片段C的后端功能运行,则会出现问题。如果我转到C,那么D的后端功能将运行。在片段A处,片段A的第一个后端功能运行,然后它自动转移到片段B,但前端视图是片段A 这是适配器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
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。如果你真的讨厌预加载,你应该试试导航+片段,它基本上不支持滑动,但不会预加载