现在的应用框架基本都会用到Fragment+ViewPager。
在我们创建多个Fragment的时候,或许我们应该用工厂模式来降低程序的耦合性。
下面这段代码来自于一个ViewPaper的Adapter里面。
@Override
public Fragment getItem(int position) {
return FragmentFactory.createFragment(position);
}
获取Fragment的时候我们可以创建一个工厂类,同时我们为了提升性能,应该利用一个Map,判断是否已经创建,如果创建则不再创建。
FragmentFactory.java
public class FragmentFactory {
private static Map<Integer, Fragment> mFragments = new HashMap<Integer, Fragment>();
public static Fragment createFragment(int position)
{
Fragment fragment = null;
fragment = mFragments.get(position); //在集合中取出来Fragment
if(fragment == null) //如果在集合中没有取出来,需要重新创建
{
if(position == 0)
{
fragment = new HomeFragment();
}
else if(position == 1)
{
fragment = new AppFragment();
}
else if(position == 2)
{
fragment = new GameFragment();
}
else if(position == 3)
{
fragment = new SubjectFragment();
}
else if(position == 1)
{
fragment = new CategoryFragment();
}
else if(position == 6)
{
fragment = new TopFragment();
}
if(fragment != null)
{
mFragments.put(position, fragment);
}
}
return fragment;
}
}