Android的碎片的onResume

问题描述 投票:1回答:3

我读过类似的一些职位,我的问题和最相似的问题是在这里:Strange onPause(), onResume() behaviour in fragments

我使用FragmentPagerAdapter创建一个标签片段。我有3个片段A,B,和C.

  • 当应用程序启动时,我看到了片段A和B onCreateView()调用。
  • 当我改变到标签B,只见称为片段ÇonCreateView()。
  • 当我改标签Ç什么都没有发生。
  • 当我改回选项卡B,我救一个片段名为onCreateView。
  • 我从来没有见过片段乙onCreateView()调用。

这是我的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);
}

}

我希望有人能帮助我与我的片段的行为,简单的解释

android fragmentpageradapter
3个回答
0
投票

我假设你正在使用的操作栏,你所描述的是适配器的正常行为:当有显示一个片段列表中的下一个片段将预加载的需求(默认,但你可以改变这一点) 。因此,在首先你需要一个,是因为没有什么“左侧”在A它会载入只是B,当你切换到B,只是C程序段将预加载,因为A是已经存在,最后当你转到C适配器不需要预加载任何东西,因为没有什么“在正确的”的的C,它已经拥有B.

希望能帮助到你。


1
投票
  • 当应用程序启动时,我看到了片段A和B onCreateView()调用。

与ViewPagerAdapter的事情是,它总是会实例化项目之一这是目前可见的旁边。

当您启动应用程序适配器将创造A和B. B就总是可用的只有3个选项卡。

  • 目前标签一个:[A] [B]被实例化
  • 目前关于选项卡B:[A] [B] [C]被实例化的
  • 目前关于选项卡B:[B] [C]被实例化

1
投票

TabView的 - 当你切换选项卡,然后的onResume永远不会被后首次调用,那么您必须使用setUserVisibleHint执行像更新/刷新操作

@Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
}
© www.soinside.com 2019 - 2024. All rights reserved.