private void showCurrentFragment() { HashMap<Integer, DSFragment> subfragments = getSubFragments(); for (int i = 0; i < mOrder.size(); ++i) { DSFragment subfragment = subfragments.get(mOrder.get(i)); subfragment .getRootView() .setVisibility(i == mCurrentFragmentPosition ? View.VISIBLE : View.GONE); ++i; } }
@Override protected void setActiveInner(boolean active) { super.setActiveInner(active); if (active && getDSActivity() != null) { switchToFragment(mCurrentFragmentPosition); } }
@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); showCurrentFragment(); return mRootView; }
@Override protected void createActionBarItems(Menu menu) { super.createActionBarItems(menu); final DSActivity activity = getDSActivity(); for (SwitchOption option : mSwitchOptions) { MenuItem item = activity.findMenuItem(option.optionID); if (item == null) { item = activity.addMenuItem( option.optionID, option.titleResID, option.iconResID, option.position, false); mActionBarSwitchItems.add(item); } } }
@Override protected void handleActionBarItems(boolean active) { super.handleActionBarItems(active); handleSwitchOptions(active); }
/** * @param containerViewID * @param fragment * @param name * @param position */ protected void attachSubFragment( int containerViewID, DSFragment fragment, String name, int position) { super.attachSubFragment(containerViewID, fragment, name); mOrder.put(position, containerViewID); }
@Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); mCurrentFragmentPosition = savedInstanceState.getInt("current-fragment-position"); }
@Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("current-fragment-position", mCurrentFragmentPosition); }