Android 发送网络请求作为碎片PageRadapter显示碎片

Android 发送网络请求作为碎片PageRadapter显示碎片,android,Android,我正在使用FragmentPagerAdapter,它使用ViewPager显示三个片段。我已将OffScreenPageLimit设置为3,因此所有三个片段在可见时同时发送网络请求(我已在Fragment.onActivityCreated()上发送网络请求)。但我希望网络请求仅在片段可见时发送(意味着用户被滚动到该片段) 注意:我使用setOffscreenPageLimit to 3,因为每次创建片段时,都不会创建新的网络请求,并显示捕获片段在每个片段的oncreateview()中进行网

我正在使用FragmentPagerAdapter,它使用ViewPager显示三个片段。我已将OffScreenPageLimit设置为3,因此所有三个片段在可见时同时发送网络请求(我已在Fragment.onActivityCreated()上发送网络请求)。但我希望网络请求仅在片段可见时发送(意味着用户被滚动到该片段)


注意:我使用setOffscreenPageLimit to 3,因为每次创建片段时,都不会创建新的网络请求,并显示捕获片段

在每个片段的oncreateview()中进行网络请求应该做您想做的事情。 我一直在用的东西。 具有片段寻呼机适配器的父活动

public class HomeActivity extends SherlockFragmentActivity{

      private static final String[] CONTENT = new String[] { "Fragment 1", "Fragment 2" };

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.homexml);
Bundle extra = getIntent().getExtras();
int i = Integer.parseInt(extra.getString("id")); 
        FragmentPagerAdapter adapter = new FragmentAdapter(getSupportFragmentManager());

            ViewPager pager = (ViewPager)findViewById(R.id.pager);
            pager.setAdapter(adapter);

            TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.indicator);
            indicator.setViewPager(pager);
         switch (i)
         {

         case 2:
             pager.setCurrentItem(0);
        break;
         case 3:
             pager.setCurrentItem(1);
//      break;
//       case 4:
//           pager.setCurrentItem(3);
//      break;
//       case 5:
//           pager.setCurrentItem(4);
//      break;
//       case 6:
//           pager.setCurrentItem(5);
//      break;
//       case 7:
//           pager.setCurrentItem(6);
//      break;
//           default:
//               pager.setCurrentItem(0);
//               break;
         }

           indicator.setFooterIndicatorStyle(IndicatorStyle.Underline);
           indicator.setFooterColor(Color.parseColor("#e7c450"));


        }


      class FragmentAdapter extends FragmentPagerAdapter {
          SherlockFragment frg; 
          public FragmentAdapter(FragmentManager fm) {
                super(fm);
            }

            @Override
            public SherlockFragment getItem(int position) {
                switch (position)
                {
                case 0:
           frg = new fragment1();
                break;
                case 1:
           frg = new fragment2();
                    break; 
                    }
            return frg; 
            }

            @Override
            public CharSequence getPageTitle(int position) {
                return CONTENT[position];
            }

//          @Override public int getIconResId(int index) {
//            return ICONS[index];
//          }

          @Override
            public int getCount() {
              return CONTENT.length;
            }
        }

Pass指定适配器中的片段。在每个片段的onCreateView()中进行网络请求。这样,只有在片段可见时才会发出网络请求。

但是在调用viewPager.setAdapter()时,会同时为每个片段创建3个请求,因为onActivityCreated()调用了3次