package reco.frame.tv.view.component;
import java.util.List;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
public class FragmentAdapter extends PagerAdapter{
private List<Fragment> fragments; // ÿ��Fragment��Ӧһ��Page
private FragmentManager fragmentManager;
private int currentPageIndex = 0; // ��ǰpage�������л�֮ǰ��
public FragmentAdapter(FragmentManager fragmentManager,
List<Fragment> fragments) {
this.fragments = fragments;
this.fragmentManager = fragmentManager;
}
public int getCount() {
return fragments.size();
}
public boolean isViewFromObject(View view, Object o) {
return view == o;
}
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(fragments.get(position).getView()); // �Ƴ�viewpager����֮���page����
}
public Object instantiateItem(ViewGroup container, int position) {
Fragment fragment = fragments.get(position);
if (!fragment.isAdded()) { // ���fragment��û��added
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.add(fragment, fragment.getClass().getSimpleName());
ft.commit();
/**
* ����FragmentTransaction.commit()�����ύFragmentTransaction�����
* ���ڽ��̵����߳��У����첽�ķ�ʽ��ִ�С� �����Ҫ����ִ������ȴ��еIJ�������Ҫ�������������ֻ�������߳��е��ã���
* Ҫע����ǣ����еĻص�����ص���Ϊ��������������б�ִ����ɣ����Ҫ��ϸȷ����������ĵ���λ�á�
*/
fragmentManager.executePendingTransactions();
}
if (fragment.getView().getParent() == null) {
container.addView(fragment.getView()); // Ϊviewpager���Ӳ���
}
return fragment.getView();
}
/**
* ��ǰpage�������л�֮ǰ��
*
* @return
*/
public int getCurrentPageIndex() {
return currentPageIndex;
}
}