1. 程式人生 > >Android 平板開發回退棧的管理

Android 平板開發回退棧的管理

我的平板開發分為5個模組為了方便對各個模組裡面的Fragment 的管理所以我給新建的每一個Fragment設定了type,

在BaseFragment中加入瞭如下的方法。

   public enum FragmentType {
        CASH, MEMBER, ORDER, STATISTIC, SETTIGN
    }
  public abstract FragmentType getFragmentType();

然後每新建一個fragment我都會設定type。


    @Override
    public FragmentType getFragmentType() {
        return FragmentType.MEMBER;
    }

然後在BaseFragment中就可以獲取到在Fragment棧中篩選出當前模組的Fragment。

 /**
     * 獲取Fragment棧
     */
    public List<Fragment> getFragmentStack() {
        List<Fragment> fragmentList = getFragmentManager().getFragments();
        int num = fragmentList.size();
        List<Fragment> resultList = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            Fragment itemFragment = fragmentList.get(i);
            if (itemFragment instanceof BaseFragment) {
                if (((BaseFragment) itemFragment).getFragmentType() == this.getFragmentType()) {
                    resultList.add(itemFragment);
                }
            }
        }
        return resultList;
    }