您的位置:首页 > 其它

ViewPager中使用fragment用法

2015-08-04 09:32 411 查看
public class ViewPageFragment extends Fragment {

private MyAdapter mAdapter;
private ViewPager mPager;
//为ViewPageFragment提供资源
private ArrayList<Fragment> pagerItemList = new ArrayList<Fragment>();
private View view;
private Activity act;

@Override
@SuppressLint("InflateParams")
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

if (view == null) {
view = inflater.inflate(R.layout.view_pager, null);

mPager = (ViewPager) view.findViewById(R.id.pager);
//mPager.setOffscreenPageLimit(4);//设置预加载页数为4,默认为2

pagerItemList.add(new HomePageFragment());
pagerItemList.add(new ShoperFragment());
pagerItemList.add(new GouWuCheFragment());
pagerItemList.add(new AboutMeFragment());

mAdapter = new MyAdapter(getFragmentManager());
mPager.setAdapter(mAdapter);
mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override
public void onPageSelected(int position) {
//滑动页面时的逻辑处理
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override
public void onPageScrollStateChanged(int position) {

}
});
}

ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
parent.removeView(view);
}
return view;

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);
act = getActivity();
}

public boolean isFirst() {
if (mPager.getCurrentItem() == 0)
return true;
else
return false;
}

public boolean isEnd() {
if (mPager.getCurrentItem() == pagerItemList.size() - 1)
return true;
else
return false;
}

public class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}

@Override
public int getCount() {
return pagerItemList.size();
}

@Override
public Fragment getItem(int position) {

Fragment fragment = null;
if (position < pagerItemList.size())
fragment = pagerItemList.get(position);
else
fragment = pagerItemList.get(0);
return fragment;

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: