私のアプリは、ニュース リスト フラグメントNewsDetailsFragment
(メニュー、検索などを含む) を備えたニュース アプリです。私は単一アクティビティ モデルを使用しており、各画面は Fragment で表されます。(ギャラリー)NewsDetailsFragment
が含まれています。ViewPager
最初に移動するNewsDetailsFragment
と、ギャラリーが読み込まれます。NewsDetailsFragment
フラグメントの新しいインスタンスを読み込むと、メニューから別のニュースを選択したり、検索を行ったりViewPager
しますNewsDetailsFragment
。Log
すべて正常に動作し、データが存在し、アダプターが getView() を呼び出します...
したがって、基本的に、ロードされたギャラリー ViewPager が 1 つある場合、それ以上NewsDetailsFragment
のギャラリーは表示されません。フラグメントがなくなるまで (したがって、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();
}
}