package com.sunvote.xpadapp.activity; import android.app.Fragment; import android.app.FragmentManager; import android.app.FragmentTransaction; import com.sunvote.xpadapp.R; import com.sunvote.xpadapp.fragment.AdminFragment; import java.util.ArrayList; import java.util.List; /** * Created by Elvis on 2017/11/30 15:07 * Email:Eluis@psunsky.com * 版权所有:长沙中天电子设计开发有限公司 * Description: 人大通用版XPadAppRD重构 * 页面管理,当前显示页面控制 */ public class PageManager { private static volatile PageManager instance; private FragmentManager fragmentManager ; public static PageManager getInstance() { if(instance == null){ synchronized (PageManager.class){ if(instance == null){ instance = new PageManager(); } } } return instance; } private List fragmentList = new ArrayList<>(); private List currentStack = new ArrayList<>(); public boolean pop1(){ if(currentStack.size() > 0) { FragmentTransaction tx = fragmentManager.beginTransaction(); tx.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); Fragment fragment = currentStack.get(currentStack.size()-1); tx.remove(fragment); tx.commitAllowingStateLoss(); currentStack.remove(fragment); return true; } return false; } public void popStack(){ for(Fragment temp : currentStack){ FragmentTransaction tx = fragmentManager.beginTransaction(); tx.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out); tx.remove(temp); tx.commitAllowingStateLoss(); } currentStack.clear(); } public void setFragmentManager(FragmentManager fragmentManager) { this.fragmentManager = fragmentManager; } public void showAdminFragment(){ FragmentTransaction transaction = fragmentManager.beginTransaction(); AdminFragment fAdmin = new AdminFragment(); currentStack.add(fAdmin); transaction.add(R.id.frame_content, fAdmin, "admin"); transaction.addToBackStack(fAdmin.getClass().getName()); transaction.commit(); } }