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