FragmentPagerAdapter是PagerAdapter的子类,它可以将Fragment放入viewPager中,它主要实现两个方法:
Fragment getItem(int index);
int getCount();
示例代码如下:
package com.dream.pagertitlestrip;
import java.util.ArrayList;
import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class MyFragementPagerAdapter extends FragmentPagerAdapter{
Fragment parent;
List<String> titles;
public List<String> getTitles() {
return titles;
}
public void setTitles(List<String> titles) {
if(titles!=null)
this.titles = titles;
else
this.titles=new ArrayList<String>();
}
public MyFragementPagerAdapter(FragmentManager fm,List<String> titles,Fragment parent) {
super(fm);
setTitles(titles);
this.parent=parent;
}
@Override
public Fragment getItem(int index) {
String title=titles.get(index);
return FragmentFactory.newFragment(title,parent);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return titles.size();
}
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titles.get(position);
}
}
特别要注意的是;如果viewpager在fragment中,即当我们想要在fragment中放入fragment的时候;不能使用
getFragmentManager或者getSupportFragmentManager而要使用getChildFragmentManager();上API:
getChildFragmentManager():
Return a private FragmentManager for placing and managing Fragments inside of this Fragment.
getFragmentManager()/
getSupportFragmentManager()
:
Return the FragmentManager for interacting with fragments associated with this fragment's activity.