Tab Fragment中的ViewPager未加载第二次

时间:2013-06-06 11:14:28

标签: android android-fragments android-viewpager android-nested-fragment

我正在尝试制作一个在片段中具有ViewPager的应用程序,该应用程序是TabHost的一部分。

一切都很好。我有我的tabbar,我可以切换标签。当我使用ViewPager切换到选项卡时,所有内容都正确显示。但是,只要我将此选项卡与ViewPager一起退出并返回此选项卡,我的内容就不会显示。如果我滚动到两侧,我会看到我的下一张图像。如果我回去两次,我也会看到图像被加载(可能是屏幕加载的)当我返回时,看到我的TabFragment正在重新实例化,但ViewPager中的片段不是。

我已经包含了一个屏幕样机和一些代码。

有人可以帮忙吗?

干杯!

@Override
public void onActivityCreated(Bundle savedInstanceState) {

    mProjectText = (TextView) getView().findViewById(R.id.projectText);
    mProjectText.setText(mActiveProject.getInspirationText());

    mAdapter = new AlbumAdapter(getFragmentManager(), mActiveProject.getInspiration());

    mPager = (ViewPager)getView().findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);


    super.onActivityCreated(savedInstanceState);
}




public class AlbumAdapter extends FragmentStatePagerAdapter {

private ArrayList<ProjectContent> mItems;

public AlbumAdapter(FragmentManager fm, ArrayList<ProjectContent> items) {
    super(fm);
    this.mItems = items;
}

@Override
public Fragment getItem(int position) {
    return AlbumContentFragment.newInstance(mItems.get(position));
}

@Override
public int getCount() {
    return mItems.size();
}

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

The mockup for the app

2 个答案:

答案 0 :(得分:156)

我发现了问题。我花了两天时间,但是,嘿,这是固定的。

而不是使用

mAdapter = new AlbumAdapter(getFragmentManager(), mActiveProject.getInspiration());

你应该使用

mAdapter = new AlbumAdapter(getChildFragmentManager(), mActiveProject.getInspiration());

这么多5个字符。

答案 1 :(得分:2)

您应该使用1,4而不是getChildFragmentManager()getFragmentManager()而不是FragmentStatePagerAdapter()。希望对某人有用。