Example usage for android.support.v4.app FragmentManager findFragmentById

List of usage examples for android.support.v4.app FragmentManager findFragmentById

Introduction

In this page you can find the example usage for android.support.v4.app FragmentManager findFragmentById.

Prototype

public abstract Fragment findFragmentById(int id);

Source Link

Document

Finds a fragment that was identified by the given id either when inflated from XML or as the container ID when added in a transaction.

Usage

From source file:com.android.calendar.agenda.AgendaFragment.java

private void showEventInfo(EventInfo event, boolean allDay, boolean replaceFragment) {

    // Ignore unknown events
    if (event.id == -1) {
        Log.e(TAG, "showEventInfo, event ID = " + event.id);
        return;/* w  w w .  ja  va  2 s  . com*/
    }

    mLastShownEventId = event.id;

    // Create a fragment to show the event to the side of the agenda list
    if (mShowEventDetailsWithAgenda) {
        FragmentManager fragmentManager = getFragmentManager();
        if (fragmentManager == null) {
            // Got a goto event before the fragment finished attaching,
            // stash the event and handle it later.
            mOnAttachedInfo = event;
            mOnAttachAllDay = allDay;
            return;
        }
        FragmentTransaction ft = fragmentManager.beginTransaction();

        if (allDay) {
            event.startTime.timezone = Time.TIMEZONE_UTC;
            event.endTime.timezone = Time.TIMEZONE_UTC;
        }

        if (DEBUG) {
            Log.d(TAG, "***");
            Log.d(TAG, "showEventInfo: start: " + new Date(event.startTime.toMillis(true)));
            Log.d(TAG, "showEventInfo: end: " + new Date(event.endTime.toMillis(true)));
            Log.d(TAG, "showEventInfo: all day: " + allDay);
            Log.d(TAG, "***");
        }

        long startMillis = event.startTime.toMillis(true);
        long endMillis = event.endTime.toMillis(true);
        EventInfoFragment fOld = (EventInfoFragment) fragmentManager.findFragmentById(R.id.agenda_event_info);
        if (fOld == null || replaceFragment || fOld.getStartMillis() != startMillis
                || fOld.getEndMillis() != endMillis || fOld.getEventId() != event.id) {
            mEventFragment = new EventInfoFragment(mActivity, event.id, startMillis, endMillis,
                    Attendees.ATTENDEE_STATUS_NONE, false, EventInfoFragment.DIALOG_WINDOW_STYLE, null);
            ft.replace(R.id.agenda_event_info, mEventFragment);
            ft.commit();
        } else {
            fOld.reloadEvents();
        }
    }
}

From source file:com.jefftharris.passwdsafe.PasswdSafe.java

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);

    PasswdSafeUtil.dbginfo(TAG, "onNewIntent: %s", intent);
    switch (intent.getAction()) {
    case PasswdSafeUtil.VIEW_INTENT:
    case Intent.ACTION_VIEW: {
        final Uri openUri = PasswdSafeApp.getOpenUriFromIntent(intent);
        final ObjectHolder<Boolean> reopen = new ObjectHolder<>(true);
        itsFileDataFrag.useFileData(new PasswdFileDataUser() {
            @Override//from  ww  w  .j ava  2 s. co  m
            public void useFileData(@NonNull PasswdFileData fileData) {
                reopen.set(!fileData.getUri().getUri().equals(openUri));
            }
        });
        Boolean reopenVal = reopen.get();
        if ((reopenVal != null) && reopenVal) {
            // Close and reopen the new file
            itsFileDataFrag.setFileData(null);
            doUpdateView(ViewMode.INIT, new PasswdLocation());
            changeInitialView();
            changeFileOpenView(intent);
        }
        break;
    }
    case Intent.ACTION_SEARCH: {
        setRecordQueryFilter(intent.getStringExtra(SearchManager.QUERY));
        break;
    }
    default: {
        FragmentManager fragMgr = getSupportFragmentManager();
        Fragment frag = fragMgr.findFragmentById(R.id.content);
        if (frag instanceof PasswdSafeOpenFileFragment) {
            ((PasswdSafeOpenFileFragment) frag).onNewIntent(intent);
        }
        break;
    }
    }
}

From source file:org.gateshipone.odyssey.activities.OdysseyMainActivity.java

@Override
public void onBackPressed() {

    FragmentManager fragmentManager = getSupportFragmentManager();

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer != null && drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else if (mNowPlayingDragStatus == DRAG_STATUS.DRAGGED_UP) {
        NowPlayingView nowPlayingView = (NowPlayingView) findViewById(R.id.now_playing_layout);
        if (nowPlayingView != null) {
            View coordinatorLayout = findViewById(R.id.main_coordinator_layout);
            coordinatorLayout.setVisibility(View.VISIBLE);
            nowPlayingView.minimize();/*from  w  w w .ja va2s  .co m*/
        }
    } else if (fragmentManager.findFragmentById(R.id.fragment_container) instanceof SettingsFragment
            || fragmentManager.findFragmentById(R.id.fragment_container) instanceof SavedPlaylistsFragment) {
        // If current fragment is the settings or savedplaylists fragment, jump back to myMusicFragment.
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.fragment_container, new MyMusicFragment());
        transaction.commit();

        // Reset the navigation view
        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        if (navigationView != null) {
            navigationView.setCheckedItem(R.id.nav_my_music);
        }
    } else if (fragmentManager.findFragmentById(R.id.fragment_container) instanceof FilesFragment) {
        // handle back pressed events for the files fragment manually

        FilesFragment fragment = (FilesFragment) fragmentManager.findFragmentById(R.id.fragment_container);

        if (fragment.isRootDirectory()) {
            // current directory is a root directory so handle back press normally
            super.onBackPressed();
        } else {
            // no root directory so create a new fragment with the parent directory
            List<String> storageVolumesList = mFileExplorerHelper.getStorageVolumes(getApplicationContext());

            String parentDirectoryPath = fragment.getCurrentDirectory().getParent();

            onDirectorySelected(parentDirectoryPath, storageVolumesList.contains(parentDirectoryPath));
        }
    } else {
        super.onBackPressed();

        // enable navigation bar when backstack empty
        if (fragmentManager.getBackStackEntryCount() == 0) {
            mDrawerToggle.setDrawerIndicatorEnabled(true);
        }
    }
}

From source file:com.gdgdevfest.android.apps.devfestbcn.ui.HomeActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (isFinishing()) {
        return;/*from   w  ww  .j a  v  a2 s  .co  m*/
    }
    if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }
    UIUtils.enableDisableActivitiesByFormFactor(this);
    setContentView(R.layout.activity_home);
    FragmentManager fm = getSupportFragmentManager();
    setTitle(R.string.app_name);

    mViewPager = (ViewPager) findViewById(R.id.pager);
    String homeScreenLabel;
    if (mViewPager != null) {
        // Phone setup
        mViewPager.setAdapter(new HomePagerAdapter(getSupportFragmentManager()));
        mViewPager.setOnPageChangeListener(this);
        mViewPager.setPageMarginDrawable(R.drawable.grey_border_inset_lr);
        mViewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.page_margin_width));

        final ActionBar actionBar = getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.addTab(actionBar.newTab().setText(R.string.title_my_schedule).setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText(R.string.title_explore).setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText(R.string.title_stream).setTabListener(this));
        setHasTabs();

        if (getIntent() != null && TAB_EXPLORE.equals(getIntent().getStringExtra(EXTRA_DEFAULT_TAB))
                && savedInstanceState == null) {
            mViewPager.setCurrentItem(1);
        }

        homeScreenLabel = getString(R.string.title_my_schedule);

    } else {
        mSocialStreamFragment = (SocialStreamFragment) fm.findFragmentById(R.id.fragment_stream);

        homeScreenLabel = "Home";
    }
    getSupportActionBar().setHomeButtonEnabled(false);
    triggerRefresh();

    EasyTracker.getTracker().sendView(homeScreenLabel);
    LOGD("Tracker", homeScreenLabel);

}

From source file:android.support.v17.leanback.app.BrowseSupportFragment.java

private void swapToMainFragment() {
    final VerticalGridView gridView = mHeadersSupportFragment.getVerticalGridView();
    if (isShowingHeaders() && gridView != null && gridView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) {
        // if user is scrolling HeadersSupportFragment,  swap to empty fragment and wait scrolling
        // finishes.
        getChildFragmentManager().beginTransaction().replace(R.id.scale_frame, new Fragment()).commit();
        gridView.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override/* w  w  w  .  ja v  a2s  .c  om*/
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
                if (newState == RecyclerView.SCROLL_STATE_IDLE) {
                    gridView.removeOnScrollListener(this);
                    FragmentManager fm = getChildFragmentManager();
                    Fragment currentFragment = fm.findFragmentById(R.id.scale_frame);
                    if (currentFragment != mMainFragment) {
                        fm.beginTransaction().replace(R.id.scale_frame, mMainFragment).commit();
                    }
                }
            }
        });
    } else {
        // Otherwise swap immediately
        getChildFragmentManager().beginTransaction().replace(R.id.scale_frame, mMainFragment).commit();
    }
}

From source file:com.conferenceengineer.android.iosched.ui.HomeActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (isFinishing()) {
        return;/*from  w  ww . j  a  v  a 2  s.  c  om*/
    }

    UIUtils.enableDisableActivitiesByFormFactor(this);
    setContentView(R.layout.activity_home);
    FragmentManager fm = getSupportFragmentManager();

    mViewPager = (ViewPager) findViewById(R.id.pager);
    String homeScreenLabel;
    if (mViewPager != null) {
        // Phone setup
        mViewPager.setAdapter(new HomePagerAdapter(getSupportFragmentManager()));
        mViewPager.setOnPageChangeListener(this);
        mViewPager.setPageMarginDrawable(R.drawable.grey_border_inset_lr);
        mViewPager.setPageMargin(getResources().getDimensionPixelSize(R.dimen.page_margin_width));

        final ActionBar actionBar = getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.addTab(actionBar.newTab().setText(R.string.title_my_schedule).setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText(R.string.title_explore).setTabListener(this));
        actionBar.addTab(actionBar.newTab().setText(R.string.title_stream).setTabListener(this));
        setHasTabs();

        if (getIntent() != null && TAB_EXPLORE.equals(getIntent().getStringExtra(EXTRA_DEFAULT_TAB))
                && savedInstanceState == null) {
            mViewPager.setCurrentItem(1);
        }

        homeScreenLabel = getString(R.string.title_my_schedule);

    } else {
        mSocialStreamFragment = (SocialStreamFragment) fm.findFragmentById(R.id.fragment_stream);

        homeScreenLabel = "Home";
    }
    getSupportActionBar().setHomeButtonEnabled(false);

    LOGD("Tracker", homeScreenLabel);

    mImageLoader = new ImageLoader(this, R.drawable.person_image_empty)
            .setMaxImageSize(getResources().getDimensionPixelSize(R.dimen.stream_image_size))
            .setFadeInImage(UIUtils.hasHoneycombMR1());

    // Sync data on load
    /*
    TODO : Sync data, don't register for GCM
    if (savedInstanceState == null) {
        registerGCMClient();
    }
    */
}

From source file:com.xandy.calendar.AllInOneActivity.java

private void setMainPane(FragmentTransaction ft, int viewId, int viewType, long timeMillis, boolean force) {
    if (mOnSaveInstanceStateCalled) {
        return;//ww w.  jav  a2s .com
    }
    if (!force && mCurrentView == viewType) {
        return;
    }

    // Remove this when transition to and from month view looks fine.
    boolean doTransition = viewType != ViewType.MONTH && mCurrentView != ViewType.MONTH;
    //        FragmentManager fragmentManager = getFragmentManager();
    FragmentManager fragmentManager = getSupportFragmentManager();
    // Check if our previous view was an Agenda view
    // TODO remove this if framework ever supports nested fragments
    if (mCurrentView == ViewType.AGENDA) {
        // If it was, we need to do some cleanup on it to prevent the
        // edit/delete buttons from coming back on a rotation.
        Fragment oldFrag = fragmentManager.findFragmentById(viewId);
        if (oldFrag instanceof AgendaFragment) {
            ((AgendaFragment) oldFrag).removeFragments(fragmentManager);
        }
    }

    if (viewType != mCurrentView) {
        // The rules for this previous view are different than the
        // controller's and are used for intercepting the back button.
        if (mCurrentView != ViewType.EDIT && mCurrentView > 0) {
            mPreviousView = mCurrentView;
        }
        mCurrentView = viewType;
    }
    // Create new fragment
    Fragment frag = null;
    Fragment secFrag = null;
    switch (viewType) {
    case ViewType.AGENDA:
        if (mActionBar != null && (mActionBar.getSelectedTab() != mAgendaTab)) {
            mActionBar.selectTab(mAgendaTab);
        }
        if (mActionBarMenuSpinnerAdapter != null) {
            mActionBar.setSelectedNavigationItem(CalendarViewAdapter.AGENDA_BUTTON_INDEX);
        }
        frag = new AgendaFragment(timeMillis, false);
        ExtensionsFactory.getAnalyticsLogger(getBaseContext()).trackView("agenda");
        break;
    case ViewType.DAY:
        if (mActionBar != null && (mActionBar.getSelectedTab() != mDayTab)) {
            mActionBar.selectTab(mDayTab);
        }
        if (mActionBarMenuSpinnerAdapter != null) {
            mActionBar.setSelectedNavigationItem(CalendarViewAdapter.DAY_BUTTON_INDEX);
        }
        frag = new DayFragment(timeMillis, 1);
        ExtensionsFactory.getAnalyticsLogger(getBaseContext()).trackView("day");
        break;
    case ViewType.MONTH:
        if (mActionBar != null && (mActionBar.getSelectedTab() != mMonthTab)) {
            mActionBar.selectTab(mMonthTab);
        }
        if (mActionBarMenuSpinnerAdapter != null) {
            mActionBar.setSelectedNavigationItem(CalendarViewAdapter.MONTH_BUTTON_INDEX);
        }

        //                frag = new MonthByWeekFragment(timeMillis, false);
        frag = new XMonthFragment();

        if (mShowAgendaWithMonth) {
            secFrag = new AgendaFragment(timeMillis, false);
        }
        ExtensionsFactory.getAnalyticsLogger(getBaseContext()).trackView("month");
        break;
    case ViewType.WEEK:
    default:
        if (mActionBar != null && (mActionBar.getSelectedTab() != mWeekTab)) {
            mActionBar.selectTab(mWeekTab);
        }
        if (mActionBarMenuSpinnerAdapter != null) {
            mActionBar.setSelectedNavigationItem(CalendarViewAdapter.WEEK_BUTTON_INDEX);
        }
        frag = new DayFragment(timeMillis, 7);
        ExtensionsFactory.getAnalyticsLogger(getBaseContext()).trackView("week");
        break;
    }

    // Update the current view so that the menu can update its look according to the
    // current view.
    if (mActionBarMenuSpinnerAdapter != null) {
        mActionBarMenuSpinnerAdapter.setMainView(viewType);
        if (!mIsTabletConfig) {
            mActionBarMenuSpinnerAdapter.setTime(timeMillis);
        }
    }

    // Show date only on tablet configurations in views different than Agenda
    if (!mIsTabletConfig) {
        mDateRange.setVisibility(View.GONE);
    } else if (viewType != ViewType.AGENDA) {
        mDateRange.setVisibility(View.VISIBLE);
    } else {
        mDateRange.setVisibility(View.GONE);
    }

    // Clear unnecessary buttons from the option menu when switching from the agenda view
    if (viewType != ViewType.AGENDA) {
        clearOptionsMenu();
    }

    boolean doCommit = false;
    if (ft == null) {
        doCommit = true;
        ft = fragmentManager.beginTransaction();
    }

    if (doTransition) {
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    }

    ft.replace(viewId, frag);
    if (mShowAgendaWithMonth) {

        // Show/hide secondary fragment

        if (secFrag != null) {
            ft.replace(R.id.secondary_pane, secFrag);
            mSecondaryPane.setVisibility(View.VISIBLE);
        } else {
            mSecondaryPane.setVisibility(View.GONE);
            Fragment f = fragmentManager.findFragmentById(R.id.secondary_pane);
            if (f != null) {
                ft.remove(f);
            }
            mController.deregisterEventHandler(R.id.secondary_pane);
        }
    }
    if (DEBUG) {
        Log.d(TAG, "Adding handler with viewId " + viewId + " and type " + viewType);
    }
    // If the key is already registered this will replace it
    mController.registerEventHandler(viewId, (EventHandler) frag);
    if (secFrag != null) {
        mController.registerEventHandler(viewId, (EventHandler) secFrag);
    }

    if (doCommit) {
        if (DEBUG) {
            Log.d(TAG, "setMainPane AllInOne=" + this + " finishing:" + this.isFinishing());
        }
        ft.commit();
    }
}

From source file:com.openatk.field_work.MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    dbHelper = new DatabaseHelper(this);
    syncHelper = new TrelloSyncHelper();

    //Get fragments
    FragmentManager fm = getSupportFragmentManager();
    atkMapFragment = (ATKSupportMapFragment) fm.findFragmentById(R.id.map);
    fragmentJob = (FragmentJob) fm.findFragmentByTag("edit_job");
    fragmentAddField = (FragmentAddField) fm.findFragmentByTag("add_field");

    //Show and hide listview really fast. TODO is there a better way to do this
    //I would like this to retain if possible...
    fragmentListView = (FragmentListView) fm.findFragmentById(R.id.list_view);
    FragmentTransaction ft = fm.beginTransaction();
    ft.hide(fragmentListView); //TODO check state, are we in list view state? if so don't hide
    ft.commit();/*from  w w  w. j  a  v a2s.c  o  m*/

    if (savedInstanceState == null) {
        // First incarnation of this activity.
        atkMapFragment.setRetainInstance(true);
        fragmentListView.setRetainInstance(true);
        if (fragmentJob != null)
            fragmentJob.setRetainInstance(true);
        if (fragmentAddField != null)
            fragmentAddField.setRetainInstance(true);

        fragmentJob = null;
        fragmentAddField = null;
    } else {
        // Reincarnated activity. The obtained map is the same map instance
        // in the previous
        // activity life cycle. There is no need to reinitialize it.
        map = atkMapFragment.getAtkMap();
    }

    actionBar = getActionBar();
    // Specify that a dropdown list should be displayed in the action bar.
    // actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

    // Hide the title
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayUseLogoEnabled(false);
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM, ActionBar.DISPLAY_SHOW_CUSTOM);

    LayoutInflater inflater = (LayoutInflater) this.getApplicationContext()
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view = inflater.inflate(R.layout.action_bar, null);

    RelativeLayout item = (RelativeLayout) view.findViewById(R.id.action_bar_layout);

    spinnerMenu = (Spinner) view.findViewById(R.id.action_bar_operation_spinner);
    actionBarSearch = (EditText) view.findViewById(R.id.action_bar_search_box);
    actionBar.setCustomView(item, new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT,
            ActionBar.LayoutParams.WRAP_CONTENT, Gravity.CENTER_VERTICAL | Gravity.LEFT));

    actionBarSearch.setOnFocusChangeListener(new OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus == false) {
                closeKeyboard();
            }
        }
    });
    actionBarSearch.addTextChangedListener(new TextWatcher() {
        @Override
        public void afterTextChanged(Editable s) {
            if (fragmentListView != null)
                fragmentListView.search(s.toString());
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }
    });

    // Get last selected items on rotate
    this.savedInstanceState = savedInstanceState;

    // Specify a SpinnerAdapter to populate the dropdown list.
    spinnerMenuAdapter = new ArrayAdapter<Operation>(this, R.layout.operation_list_item, operationsList);
    spinnerMenu.setAdapter(spinnerMenuAdapter);

    RelativeLayoutKeyboardDetect layout = (RelativeLayoutKeyboardDetect) this.findViewById(R.id.mainActivity);
    layout.setListener(this);

    setUpMapIfNeeded();
    if (this.savedInstanceState != null) {
        int viewState = savedInstanceState.getInt("currentViewState", STATE_DEFAULT);
        setState(viewState);
    }
}

From source file:com.openatk.field_work.MainActivity.java

private void setState(int newState, boolean transition) {
    Log.d("SetState!!", "Setting state:" + Integer.toString(newState));
    if (mCurrentState == newState) {
        return;/*w w  w  .  j a v a  2 s.com*/
    }
    // Exit current state
    if (mCurrentState == STATE_DEFAULT) {

    } else if (mCurrentState == STATE_LIST_VIEW) {
        FragmentManager fm = getSupportFragmentManager();
        // Hide list
        actionBarSearch.setVisibility(View.GONE);
        Fragment fragment = fm.findFragmentById(R.id.list_view);
        FragmentTransaction ft = fm.beginTransaction();
        ft.hide(fragment);
        ft.commit();
        fragmentListView = null;
    }

    // Enter new state
    if (newState == STATE_DEFAULT) {

    } else if (newState == STATE_LIST_VIEW) {
        FragmentManager fm = getSupportFragmentManager();
        // Show List
        actionBarSearch.setVisibility(View.VISIBLE);
        FragmentListView fragmentListView = (FragmentListView) fm.findFragmentById(R.id.list_view);
        fragmentListView.getData();
        FragmentTransaction ft = fm.beginTransaction();
        ft.show(fragmentListView);
        ft.commit();

        this.fragmentListView = fragmentListView;
    }
    // Officially in new state
    mCurrentState = newState;
    invalidateOptionsMenu();
}

From source file:cn.edu.zafu.corepage.core.CorePageManager.java

/**
 * ?/*from  w ww.  j a  v a  2  s  . c om*/
 * fragemnt
 *
 * @param fragmentManager FragmentManager?
 * @param pageName  ???
 * @param bundle ?
 * @param animations 
 * @param addToBackStack ?
 * @return Fragment
 */
public Fragment openPageWithNewFragmentManager(FragmentManager fragmentManager, String pageName, Bundle bundle,
        int[] animations, boolean addToBackStack) {
    BaseFragment fragment = null;
    try {
        CorePage corePage = this.mPageMap.get(pageName);
        if (corePage == null) {
            Log.d(TAG, "Page:" + pageName + " is null");
            return null;
        }
        /**
         * Atlas? start
         */
        if (CoreConfig.isOpenAtlas()) {
            ClassLoader bundleClassLoader = CoreConfig.getBundleClassLoader();
            if (bundleClassLoader == null) {
                Log.d(TAG, "OpenAtlas bundle ClassLoader is null!");
                return null;
            }
            fragment = (BaseFragment) CoreConfig.getBundleClassLoader().loadClass(corePage.getClazz())
                    .newInstance();
        } else {
            fragment = (BaseFragment) Class.forName(corePage.getClazz()).newInstance();
        }
        /**
         * Atlas? end
         */

        Bundle pageBundle = buildBundle(corePage);
        if (bundle != null) {
            pageBundle.putAll(bundle);
        }
        fragment.setArguments(pageBundle);
        fragment.setPageName(pageName);

        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        if (animations != null && animations.length >= 4) {
            fragmentTransaction.setCustomAnimations(animations[0], animations[1], animations[2], animations[3]);
        }
        Fragment fragmentContainer = fragmentManager.findFragmentById(R.id.fragment_container);
        if (fragmentContainer != null) {
            fragmentTransaction.hide(fragmentContainer);
        }

        fragmentTransaction.add(R.id.fragment_container, fragment, pageName);
        if (addToBackStack) {
            fragmentTransaction.addToBackStack(pageName);
        }

        fragmentTransaction.commitAllowingStateLoss();
        //fragmentTransaction.commit();

    } catch (Exception e) {
        e.printStackTrace();
        Log.d(TAG, "Fragment.error:" + e.getMessage());
        return null;
    }
    return fragment;
}