package net.oschina.gitapp.ui.basefragment;
import net.oschina.gitapp.R;
import net.oschina.gitapp.adapter.ViewPageFragmentAdapter;
import net.oschina.gitapp.widget.PagerSlidingTabStrip;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
* 带有导航条的基类
*
*/
public abstract class BaseViewPagerFragment extends BaseFragment{
protected PagerSlidingTabStrip mTabStrip;
protected ViewPager mViewPager;
protected ViewPageFragmentAdapter mTabsAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.base_viewpage_fragment, null);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
mTabStrip = (PagerSlidingTabStrip) view.findViewById(R.id.pager_tabstrip);
mViewPager = (ViewPager)view.findViewById(R.id.pager);
mTabsAdapter = new ViewPageFragmentAdapter(
getChildFragmentManager(), mTabStrip, mViewPager);
onSetupTabAdapter(mTabsAdapter);
mTabsAdapter.notifyDataSetChanged();
mViewPager.setOffscreenPageLimit(2);
if (savedInstanceState != null) {
int pos = savedInstanceState.getInt("position");
mViewPager.setCurrentItem(pos, true);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("position", mViewPager.getCurrentItem());
}
protected abstract void onSetupTabAdapter(ViewPageFragmentAdapter adapter);
}