私は、ビューページャで3つのフラグメントを使用しています。imは参照として位置IDを使用し、フラグメントが表示されている位置IDに基づいて、それぞれのフラグメントは異なるデータを持っています。ビューページャ内のフラグメント
@Override
public Fragment getItem(int position)
{
if(position==1){
Log.e("Fragment","Fragment 1::"+String.valueOf(i));
if (!(i<3))
{
new Progress(100).execute();
new Progress2(20).execute();
new Progress3(30).execute();
}
++i;
return SlideFragment.newInstance(1, " ");}
if(position==2){
Log.e("Fragment","Fragment 2");
if (!(i<3))
{
new Progress(40).execute();
new Progress2(50).execute();
new Progress3(90).execute();
}
++i;
return Slidetwo.newInstance(String.valueOf(2), " ");}
if (position==3)
Log.e("Fragment","Fragment 3");
if (!(i<3))
{
new Progress(50).execute();
new Progress2(10).execute();
new Progress3(40).execute();
}
++i;
return SlideThree.newInstance(String.valueOf(3), " ");
}
このコードでは、3つのフラグメントのすべてのデータが表示されているにもかかわらず、3つのフラグメントすべてのログが表示されなくても、そのフラグメントのデータが表示されています他の2つの断片に戻って、誰かが私が間違っているところを知っているので、私を助けてください。
私はmPager.setOffScreenpageLimit(2)を適用すると試しました。 Imはフラグメント1からのログ値だけを取得し、他の2つのフラグメントは消えています –
mPager.setOffscreenPageLimit(3);私がこの3つのログをすべて取得したとき、初めてフラグメントをスワイプしてもアンドロイドスタジオから初めて実行するとき@Suhyeon Lee –
@TamilSelvan 'ViewPager.setOffScreenpageLimit()のAPIドキュメント) 'まず。ページを最初にロードしてメモリに保持し、ページがロードされているときにgetItem()メソッドが呼び出されます。ページを変更するたびにログを取得するには、代わりに 'ViewPager.OnPageChangeListener()'を使用する必要があります。 –