-
-
Save mbarrben/3891538 to your computer and use it in GitHub Desktop.
BasePagerFragment - Simple way to place a FragmentViewPager in a Fragment!
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public abstract class BaseViewPagerFragment extends SherlockFragment { | |
protected DataProvider dataProvider; | |
private int layoutRes; | |
private FragmentStatePagerAdapter pagerAdapter = null; | |
private ViewPager viewPager; | |
private PageIndicator pageIndicator; | |
private final Handler handler = new Handler(); | |
private Runnable runPager; | |
private boolean isCreated = false; | |
public BaseViewPagerFragment() { | |
setLayoutRes(R.layout.tabs); | |
} | |
@Override | |
public View onCreateView(LayoutInflater inflater, ViewGroup container, | |
Bundle savedInstanceState) { | |
View rootView = inflater.inflate(layoutRes, container, false); | |
viewPager = (ViewPager) rootView.findViewById(R.id.pager); | |
pageIndicator = (TabPageIndicator) rootView.findViewById(R.id.tabs); | |
viewPager.setOffscreenPageLimit(2); | |
return rootView; | |
} | |
@Override | |
public void onActivityCreated(Bundle savedInstanceState) { | |
super.onActivityCreated(savedInstanceState); | |
dataProvider = (DataProvider) getActivity().getApplication() | |
.getSystemService(DataProvider.SERVICE); | |
if (runPager != null) { | |
handler.post(runPager); | |
} | |
isCreated = true; | |
} | |
@Override | |
public void onPause() { | |
super.onPause(); | |
handler.removeCallbacks(runPager); | |
} | |
protected void setAdapter(FragmentStatePagerAdapter adapter) { | |
pagerAdapter = adapter; | |
runPager = new Runnable() { | |
@Override | |
public void run() { | |
viewPager.setAdapter(pagerAdapter); | |
pageIndicator.setViewPager(viewPager); | |
((View) pageIndicator).setVisibility(View.VISIBLE); | |
} | |
}; | |
if (isCreated) { | |
handler.post(runPager); | |
} | |
} | |
protected void setLayoutRes(int layoutRes) { | |
this.layoutRes = layoutRes; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment