package com.yuantiku.yyl.pages; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import com.yuantiku.yyl.pages.interfaces.Page; /** * @author wanghb * @date 15/4/28. */ public class FragmentPageManager extends AbstractPageManager { private FragmentManager fragmentManager; private int containerViewId; public FragmentPageManager(FragmentManager fragmentManager, int containerViewId) { this.fragmentManager = fragmentManager; this.containerViewId = containerViewId; } @Override protected void pushPage(Page page, String tag) { FragmentPage fragmentPage = (FragmentPage) page; FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.add(containerViewId, fragmentPage, tag); fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); fragmentTransaction.commit(); } @Override public boolean interceptBackPressed() { FragmentPage page = (FragmentPage) fragmentManager.findFragmentById(containerViewId); return page.interceptBackPressed(); } @Override protected void popPage(Page page) { FragmentPage fragmentPage = (FragmentPage) page; FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE); fragmentTransaction.remove(fragmentPage); fragmentTransaction.commit(); } }