类android.support.v4.app.FragmentManager.BackStackEntry源码实例Demo

下面列出了怎么用android.support.v4.app.FragmentManager.BackStackEntry的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
public void onBackStackChanged() {
    if (getFragmentManager() == null) {
        Log.w(TAG, "getFragmentManager() is null, stack:", new Exception());
        return;
    }
    int count = getFragmentManager().getBackStackEntryCount();
    // if backstack is growing and last pushed entry is "headers" backstack,
    // remember the index of the entry.
    if (count > mLastEntryCount) {
        BackStackEntry entry = getFragmentManager().getBackStackEntryAt(count - 1);
        if (mWithHeadersBackStackName.equals(entry.getName())) {
            mIndexOfHeadersBackStack = count - 1;
        }
    } else if (count < mLastEntryCount) {
        // if popped "headers" backstack, initiate the show header transition if needed
        if (mIndexOfHeadersBackStack >= count) {
            mIndexOfHeadersBackStack = -1;
            if (!mShowingHeaders) {
                startHeadersTransitionInternal(true);
            }
        }
    }
    mLastEntryCount = count;
}
 
源代码2 项目: qiniu-lab-android   文件: FileChooserActivity.java
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public void onBackStackChanged() {

    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
        BackStackEntry fragment = mFragmentManager
                .getBackStackEntryAt(count - 1);
        mPath = fragment.getName();
    } else {
        mPath = EXTERNAL_BASE_PATH;
    }

    setTitle(mPath);
    if (HAS_ACTIONBAR)
        invalidateOptionsMenu();
}
 
源代码3 项目: open-rmbt   文件: RMBTMainActivity.java
public Fragment getCurrentFragment()
{
	final int backStackEntryCount = getSupportFragmentManager().getBackStackEntryCount();
    if (backStackEntryCount > 0)
    {
		try
        {
            final BackStackEntry backStackEntryAt = getSupportFragmentManager().getBackStackEntryAt(backStackEntryCount - 1);
            String fragmentTag = backStackEntryAt.getName();
            Fragment currentFragment = getSupportFragmentManager().findFragmentByTag(fragmentTag);
            return currentFragment;
        }
        catch (Exception e)
        {
            // fix possible race condition:
            // when called in background thread - back stack could be different between call of
            // getBackStackEntryCount() and getBackStackEntryAt()
            e.printStackTrace();
        }
	}
	
	return getSupportFragmentManager().findFragmentByTag(AppConstants.PAGE_TITLE_MAIN);
}
 
private void startHeadersTransitionInternal(final boolean withHeaders) {
    if (getFragmentManager().isDestroyed()) {
        return;
    }
    mShowingHeaders = withHeaders;
    mRowsSupportFragment.onExpandTransitionStart(!withHeaders, new Runnable() {
        @Override
        public void run() {
            mHeadersSupportFragment.onTransitionStart();
            createHeadersTransition();
            if (mBrowseTransitionListener != null) {
                mBrowseTransitionListener.onHeadersTransitionStart(withHeaders);
            }
            sTransitionHelper.runTransition(withHeaders ? mSceneWithHeaders : mSceneWithoutHeaders,
                    mHeadersTransition);
            if (mHeadersBackStackEnabled) {
                if (!withHeaders) {
                    getFragmentManager().beginTransaction()
                            .addToBackStack(mWithHeadersBackStackName).commit();
                } else {
                    int index = mBackStackChangedListener.mIndexOfHeadersBackStack;
                    if (index >= 0) {
                        BackStackEntry entry = getFragmentManager().getBackStackEntryAt(index);
                        getFragmentManager().popBackStackImmediate(entry.getId(),
                                FragmentManager.POP_BACK_STACK_INCLUSIVE);
                    }
                }
            }
        }
    });
}
 
源代码5 项目: droid-stealth   文件: FileChooserActivity.java
@Override
public void onBackStackChanged() {

    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
        BackStackEntry fragment = mFragmentManager.getBackStackEntryAt(count - 1);
        mPath = fragment.getName();
    } else {
        mPath = EXTERNAL_BASE_PATH;
    }

    setTitle(mPath);
    if (HAS_ACTIONBAR)
        supportInvalidateOptionsMenu();
}
 
源代码6 项目: filechooser   文件: FileChooserActivity.java
@Override
public void onBackStackChanged() {

    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
        BackStackEntry fragment = mFragmentManager.getBackStackEntryAt(count - 1);
        mPath = fragment.getName();
    } else {
        mPath = EXTERNAL_BASE_PATH;
    }

    setTitle(mPath);
    if (HAS_ACTIONBAR)
        invalidateOptionsMenu();
}
 
源代码7 项目: secrecy   文件: FileChooserActivity.java
@Override
public void onBackStackChanged() {

    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
        BackStackEntry fragment = mFragmentManager.getBackStackEntryAt(count - 1);
        mPath = fragment.getName();
    } else {
        mPath = EXTERNAL_BASE_PATH;
    }

    setTitle(mPath);
    if (HAS_ACTIONBAR)
        supportInvalidateOptionsMenu();
}
 
源代码8 项目: Readily   文件: FileChooserActivity.java
@Override
public void onBackStackChanged() {

    int count = mFragmentManager.getBackStackEntryCount();
    if (count > 0) {
        BackStackEntry fragment = mFragmentManager.getBackStackEntryAt(count - 1);
        mPath = fragment.getName();
    } else {
        mPath = EXTERNAL_BASE_PATH;
    }

    setTitle(mPath);
    if (HAS_ACTIONBAR)
        invalidateOptionsMenu();
}
 
源代码9 项目: letv   文件: FragmentManagerImpl.java
public BackStackEntry getBackStackEntryAt(int index) {
    return (BackStackEntry) this.mBackStack.get(index);
}