我读过类似的一些职位,我的问题和最相似的问题是在这里:Strange onPause(), onResume() behaviour in fragments
我使用FragmentPagerAdapter创建一个标签片段。我有3个片段A,B,和C.
这是我的FragmentPagerAdapter实现:
public class TabsPagerAdapter extends FragmentPagerAdapter {
private static final int TOTAL_TABS = 3;
public TabsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int index) {
switch (index) {
case 0:
// Top Rated fragment activity
return new ImageFragment();
case 1:
// Games fragment activity
return new CameraFragment();
case 2:
// Movies fragment activity
return new WebFragment();
}
return null;
}
@Override
public int getCount() {
// get item count - equal to number of tabs
return TOTAL_TABS;
}
@Override
public int getItemPosition(Object object) {
return super.getItemPosition(object);
}
}
我希望有人能帮助我与我的片段的行为,简单的解释
我假设你正在使用的操作栏,你所描述的是适配器的正常行为:当有显示一个片段列表中的下一个片段将预加载的需求(默认,但你可以改变这一点) 。因此,在首先你需要一个,是因为没有什么“左侧”在A它会载入只是B,当你切换到B,只是C程序段将预加载,因为A是已经存在,最后当你转到C适配器不需要预加载任何东西,因为没有什么“在正确的”的的C,它已经拥有B.
希望能帮助到你。
- 当应用程序启动时,我看到了片段A和B onCreateView()调用。
与ViewPagerAdapter的事情是,它总是会实例化项目之一这是目前可见的旁边。
当您启动应用程序适配器将创造A和B. B就总是可用的只有3个选项卡。
TabView的 - 当你切换选项卡,然后的onResume永远不会被后首次调用,那么您必须使用setUserVisibleHint执行像更新/刷新操作
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
}