您的位置:首页 > 理论基础 > 计算机网络

在ViewPager+Fragment实现Tabhost基础之上实现滑动到当前Fragment加载网络数据

2014-10-18 16:07 543 查看
处女贴,欢迎拍砖!!!

关于ViewPager+Fragment实现Tabhost相信大家都会了,网上资源很多,感谢开源!!!本文主要是实现滑动到当前Fragment加载网络数据。

1、实现Tabhost就不在这赘述了,如有需求请留言

2、setOffscreenPageLimit()方法是关键

好了,进入正题,首先实现滑动到当前Fragment加载网络数据,看下面代码:该Activity为fragment宿主,主要是定义了一个变量item来标示当前界面跟设置预加载界面

public class MainAct1 extends BaseActivity{
private long exitTime = 0;
private ViewPager mVp = null;
private List<Fragment> fragments = null;
private FragmentViewPagerAdapter mAdapter = null;
private RadioButton[] mFootButtons = null;
private LinearLayout mFootLayout = null;
//当前pager界面
public int item = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);
fragments = new ArrayList<Fragment>();
fragments.add(Fragment1.getInstance());
fragments.add(Fragment2.getInstance());
fragments.add(Fragment3.getInstance());
initView();
setCurrentPager(0);
}
@Override
protected void initView() {
// TODO Auto-generated method stub
mFootLayout = (LinearLayout)getView(R.id.main_linearlayout_footer);
initFootBar();

mVp = (ViewPager)getView(R.id.viewpager);
//设置预加载3个界面
mVp.setOffscreenPageLimit(3);
mAdapter = new FragmentViewPagerAdapter(getSupportFragmentManager(), mVp, fragments);
mAdapter.setOnExtraPageChangeListener(new FragmentViewPagerAdapter.OnExtraPageChangeListener(){
@Override
public void onExtraPageSelected(int i) {
// TODO Auto-generated method stub
super.onExtraPageSelected(i);
setCurrentPager(i);
}
});
}

public int getItem() {
return mVp.getCurrentItem();
}
在Fragment中我们重写onResume()方法,在该方法中执行加载数据方法,(默认加载Fragment1 ,ViewPager默认item为0,所以当item为1时,当前显示是Fragment2)

@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
//当当前界面为1且保存数据的集合为空时执行
if(((MainAct1)getActivity()).getItem() == 1 && mDatas.size() == 0){
getData4Service();

}
Log.i("tag", "onResume");
}
好了小伙伴们,大功告成,是不是很简单?赶快试试吧!(大家可以把宿主Activity中的setOffscreenPageLimit(3)改为setOffscreenPageLimit(1)当你直接跳到第三个Fragment的时候会有意外惊喜!!!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐