【发布时间】:2013-11-27 15:15:29
【问题描述】:
我的应用是一个新闻应用,带有新闻列表片段NewsDetailsFragment(包含菜单、搜索等)。我使用的是单一活动模型,每个屏幕都由一个片段表示。 NewsDetailsFragment 包括一个 ViewPager(图库)。
当我最初导航到NewsDetailsFragment 时,画廊已加载,现在如果我加载NewsDetailsFragment 片段的新实例,从菜单中选择另一个新闻,进行搜索等。ViewPager 在第二个NewsDetailsFragment 不会显示图像,虽然Log 显示一切正常,数据在那里,适配器调用getView()...
所以基本上如果有 1 个加载的画廊 ViewPager,那么NewsDetailsFragment 将不会显示他们的画廊,只有当我按下 Back 直到我没有片段(因此没有 ViewPager 运行),只有当我打开一个新实例时NewsDetailsFragment 将加载图库。
我希望我解释清楚。我已经尽力了,现在我一无所知。
这是我在加载后将画廊数据传递给 ViewPager 的方式(代码摘自 NewsDetailsFragment):
ViewPager pager = (ViewPager) getView().findViewById(R.id.vpAlbum);
ArticleAlbumAdapter adapter = new ArticleAlbumAdapter(getActivity().getSupportFragmentManager(), article.album);
pager.setAdapter(adapter);
ArticleAlbumAdapter:
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();
}
}
【问题讨论】:
标签: android android-fragments android-viewpager android-nested-fragment