ViewPager显示的图像不超过1个片段



我的应用程序是一个新闻应用程序,包含新闻列表片段NewsDetailsFragment(包含菜单、搜索等)。我使用的是单一活动模型,每个屏幕都由一个片段表示。CCD_ 2包括CCD_。

当我最初导航到NewsDetailsFragment时,库被加载,现在如果我加载NewsDetailsFragment片段的新实例,从菜单中选择另一个新闻,进行搜索等。第二个NewsDetailsFragment中的ViewPager不会显示图像,尽管Log显示一切正常,数据在那里,适配器调用getView()。。。

因此,基本上,如果有1个加载的gallery ViewPager,那么更多的NewsDetailsFragment将不会显示它们的gallery,只有当我按Back直到没有片段(因此没有ViewPager运行),只有在我打开NewsDetailsFragment的新实例时,它才会加载gallery。

我希望我解释清楚。我已经尽力了,但现在却一无所知。

这就是加载后我将图库数据传递给ViewPager的方式(代码摘录自NewsDetailsFragment):

ViewPager pager = (ViewPager) getView().findViewById(R.id.vpAlbum);
ArticleAlbumAdapter adapter = new ArticleAlbumAdapter(getActivity().getSupportFragmentManager(), article.album);
pager.setAdapter(adapter);

文章相册适配器:

public class ArticleAlbumAdapter extends FragmentStatePagerAdapter
{
private List<String> urlList;
public ArticleAlbumAdapter(FragmentManager fm, List<String> urlList)
{
    super(fm);
    this.urlList = urlList;
    Log.d("ArticleAlbumAdapter()", "urlList=" + urlList);
}
@Override
public Fragment getItem(int position)
{
    Log.d("ArticleAlbumAdapter.getItem()", "position=" + position + ", url=" + urlList.get(position));
    Fragment image = new AlbumImageFragment();
    Bundle bundle = new Bundle();
    bundle.putString("url", urlList.get(position));
    bundle.putInt("pos", position);
    image.setArguments(bundle);
    return  image;
}
@Override
public int getCount()
{
    return urlList.size();
}
}

将当前Fragment的getChildFragmentManager()而不是活动的FragmentManager传递给ViewPager。根据您的描述,我假设创建第一个ViewPager的主屏幕也是一个Fragment。由于ViewPager是Fragment的子级,而它又在创建子Fragments,因此它需要子FragmentManager,而不是主FragmentManager。

最新更新