android.app.FragmentManager#BackStackEntry ( )源码实例Demo

下面列出了android.app.FragmentManager#BackStackEntry ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: trekarta   文件: MainActivity.java
@Override
public void popCurrent() {
    logger.debug("popCurrent()");
    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
        FragmentManager.BackStackEntry bse = mFragmentManager.getBackStackEntryAt(count - 1);
        String fragmentName = bse.getName();
        if ("baseMapDownload".equals(fragmentName)) {
            if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                HelperUtils.showTargetedAdvice(MainActivity.this, Configuration.ADVICE_ENABLE_LOCATIONS, R.string.advice_enable_locations, mViews.locationButton, false);
            }
        } else if ("trackProperties".equals(fragmentName)) {
            HelperUtils.showTargetedAdvice(this, Configuration.ADVICE_RECORDED_TRACKS, R.string.advice_recorded_tracks, mViews.recordButton, false);
        }
    }
    mFragmentManager.popBackStack();
}
 
源代码2 项目: Snake   文件: FragmentManagerHelper.java
public Fragment getLastFragment() {
    int backStackCount = mFragmentManager.getBackStackEntryCount();
    if (backStackCount <= 0) return null;

    FragmentManager.BackStackEntry backStackEntry = mFragmentManager.getBackStackEntryAt(backStackCount - 1);
    String fragmentTag = backStackEntry.getName();
    return mFragmentManager.findFragmentByTag(fragmentTag);
}
 
源代码3 项目: Ouroboros   文件: ThreadFragment.java
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
    int backStackCount = getFragmentManager().getBackStackEntryCount();
    if (backStackCount > 0) {
        FragmentManager.BackStackEntry backEntry = getFragmentManager().getBackStackEntryAt(backStackCount - 1);
        String str = backEntry.getName();
        if (str.equals("threadDialog")){
            getActivity().onBackPressed();
            return false;
        }
    }
    startStatusCheck();
    return true;
}
 
源代码4 项目: trekarta   文件: MainActivity.java
@Override
public void onBackPressed() {
    logger.debug("onBackPressed()");
    if (backKeyIntercepted())
        return;

    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
        FragmentManager.BackStackEntry bse = mFragmentManager.getBackStackEntryAt(count - 1);
        if (BuildConfig.FULL_VERSION && "settings".equals(bse.getName()))
            HelperUtils.showTargetedAdvice(this, Configuration.ADVICE_MAP_SETTINGS, R.string.advice_map_settings, mViews.mapsButton, false);
        if ("trackProperties".equals(bse.getName()))
            HelperUtils.showTargetedAdvice(this, Configuration.ADVICE_RECORDED_TRACKS, R.string.advice_recorded_tracks, mViews.recordButton, false);
        super.onBackPressed();
        if (count == 1 && mPanelState != PANEL_STATE.NONE)
            setPanelState(PANEL_STATE.NONE);
        return;
    }

    if (count == 0 || secondBack) {
        //mBackToast.cancel();
        finish();
    } else {
        secondBack = true;
        mBackToast.show();
        mBackHandler.postDelayed(() -> secondBack = false, 2000);
    }
}
 
源代码5 项目: hex   文件: MainActivity.java
@Override
public void onBackStackChanged() {

    if (getFragmentManager().getBackStackEntryCount() < 1) {
        mCurrentItem = HexDrawer.Item.FrontPage;
    } else {
        FragmentManager.BackStackEntry bse = getFragmentManager().getBackStackEntryAt(getFragmentManager().getBackStackEntryCount() - 1);
        mCurrentItem = HexDrawer.Item.valueOf(bse.getName());
    }

    updateToolbarTitle();
    updateDrawer();
}
 
源代码6 项目: linphone-android   文件: SettingsActivity.java
@Override
protected void onResume() {
    super.onResume();

    hideTabBar();

    int count = getFragmentManager().getBackStackEntryCount();
    if (count == 0) {
        showTopBarWithTitle(getString(R.string.settings));
    } else {
        FragmentManager.BackStackEntry entry =
                getFragmentManager().getBackStackEntryAt(count - 1);
        showTopBarWithTitle(entry.getName());
    }
}
 
源代码7 项目: secrecy   文件: MainActivity.java
void addFragment(final Fragment fragment, int transition1, int transition2) {
    if (mFragmentNameList.contains(fragment.getClass())) {
        mNavigation.setSelectedItem(mFragmentNameList.indexOf(fragment.getClass()));
    }
    String tag = fragment.getClass().getName();
    if (fragmentManager.getBackStackEntryCount() >= 1) {

        String activeFragmentTag = fragmentManager
                .getBackStackEntryAt(fragmentManager
                        .getBackStackEntryCount() - 1).getName();
        Fragment activeFragment =  fragmentManager
                .findFragmentByTag(activeFragmentTag);
        // Don't switch fragment if already active
        if (activeFragment.getClass().equals(fragment.getClass())){
            return;
        }
        //clear all except lowest
        FragmentManager.BackStackEntry first = fragmentManager.getBackStackEntryAt(0);
        fragmentManager.popBackStackImmediate(first.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }
    FragmentTransaction transaction = fragmentManager.beginTransaction()
            .setCustomAnimations(transition1, transition2)
            .replace(R.id.content_frame, fragment, tag);
    if (fragment.getClass() != VaultsListFragment.class) {
        transaction = transaction
                .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
                .addToBackStack(tag);
    }
    transaction.commit();
}
 
源代码8 项目: trekarta   文件: MainActivity.java
@Override
public void popAll() {
    logger.debug("popAll()");
    FragmentManager.BackStackEntry bse = mFragmentManager.getBackStackEntryAt(0);
    mFragmentManager.popBackStack(bse.getId(), FragmentManager.POP_BACK_STACK_INCLUSIVE);
}
 
源代码9 项目: linphone-android   文件: MainActivity.java
protected void changeFragment(Fragment fragment, String name, boolean isChild) {
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();

    if (transaction.isAddToBackStackAllowed()) {
        int count = fragmentManager.getBackStackEntryCount();
        if (count > 0) {
            FragmentManager.BackStackEntry entry =
                    fragmentManager.getBackStackEntryAt(count - 1);

            if (entry != null && name.equals(entry.getName())) {
                fragmentManager.popBackStack();
                if (!isChild) {
                    // We just removed it's duplicate from the back stack
                    // And we want at least one in it
                    transaction.addToBackStack(name);
                }
            }
        }

        if (isChild) {
            transaction.addToBackStack(name);
        }
    }

    if (getResources().getBoolean(R.bool.hide_bottom_bar_on_second_level_views)) {
        if (isChild) {
            if (!isTablet()) {
                hideTabBar();
            }
        } else {
            showTabBar();
        }
    }

    Compatibility.setFragmentTransactionReorderingAllowed(transaction, false);
    if (isChild && isTablet()) {
        transaction.replace(R.id.fragmentContainer2, fragment, name);
        findViewById(R.id.fragmentContainer2).setVisibility(View.VISIBLE);
    } else {
        transaction.replace(R.id.fragmentContainer, fragment, name);
    }
    transaction.commitAllowingStateLoss();
    fragmentManager.executePendingTransactions();
}