android.support.v4.app.Fragment#SavedState ( )源码实例Demo

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

源代码1 项目: ankihelper   文件: FolioActivity.java
private void resetSearchResults() {
    Log.v(LOG_TAG, "-> resetSearchResults");

    ArrayList<Fragment> fragments = mFolioPageFragmentAdapter.getFragments();
    for (int i = 0; i < fragments.size(); i++) {
        FolioPageFragment folioPageFragment = (FolioPageFragment) fragments.get(i);
        if (folioPageFragment != null) {
            folioPageFragment.resetSearchResults();
        }
    }

    ArrayList<Fragment.SavedState> savedStateList =
            mFolioPageFragmentAdapter.getSavedStateList();
    if (savedStateList != null) {
        for (int i = 0; i < savedStateList.size(); i++) {
            Fragment.SavedState savedState = savedStateList.get(i);
            Bundle bundle = FolioPageFragmentAdapter.getBundleFromSavedState(savedState);
            if (bundle != null)
                bundle.putParcelable(FolioPageFragment.BUNDLE_SEARCH_ITEM, null);
        }
    }
}
 
源代码2 项目: Orin   文件: CustomFragmentStatePagerAdapter.java
@Override
public Object instantiateItem(ViewGroup container, int position) {
    // If we already have this item instantiated, there is nothing
    // to do.  This can happen when we are restoring the entire pager
    // from its saved state, where the fragment manager has already
    // taken care of restoring the fragments we previously had instantiated.
    if (mFragments.size() > position) {
        Fragment f = mFragments.get(position);
        if (f != null) {
            return f;
        }
    }

    if (mCurTransaction == null) {
        mCurTransaction = mFragmentManager.beginTransaction();
    }

    Fragment fragment = getItem(position);
    if (DEBUG) Log.v(TAG, "Adding item #" + position + ": f=" + fragment);
    if (mSavedState.size() > position) {
        Fragment.SavedState fss = mSavedState.get(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
    }
    while (mFragments.size() <= position) {
        mFragments.add(null);
    }
    fragment.setMenuVisibility(false);
    fragment.setUserVisibleHint(false);
    mFragments.set(position, fragment);
    mCurTransaction.add(container.getId(), fragment);

    return fragment;
}
 
@Override
public Object instantiateItem(ViewGroup container, int position) {
    // If we already have this item instantiated, there is nothing
    // to do.  This can happen when we are restoring the entire pager
    // from its saved state, where the fragment manager has already
    // taken care of restoring the fragments we previously had instantiated.
    if (mFragments.size() > position) {
        Fragment f = mFragments.get(position);
        if (f != null) {
            return f;
        }
    }

    if (mCurTransaction == null) {
        mCurTransaction = mFragmentManager.beginTransaction();
    }

    Fragment fragment = getItem(position);
    if (DEBUG) Log.v(TAG, "Adding item #" + position + ": f=" + fragment);
    if (mSavedState.size() > position) {
        Fragment.SavedState fss = mSavedState.get(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
    }
    while (mFragments.size() <= position) {
        mFragments.add(null);
    }
    fragment.setMenuVisibility(false);
    fragment.setUserVisibleHint(false);
    mFragments.set(position, fragment);
    mCurTransaction.add(container.getId(), fragment);

    return fragment;
}
 
源代码4 项目: ankihelper   文件: FolioPageFragmentAdapter.java
public ArrayList<Fragment.SavedState> getSavedStateList() {

        if (savedStateList == null) {
            try {
                Field field = FragmentStatePagerAdapter.class.getDeclaredField("mSavedState");
                field.setAccessible(true);
                savedStateList = (ArrayList<Fragment.SavedState>) field.get(this);
            } catch (Exception e) {
                Log.e(LOG_TAG, "-> ", e);
            }
        }

        return savedStateList;
    }
 
@Override
@NonNull
public Object instantiateItem(ViewGroup container, int position) {
    long tag = getItemId(position);
    Fragment fragment = mFragments.get(tag);
    // If we already have this item instantiated, there is nothing
    // to do.  This can happen when we are restoring the entire pager
    // from its saved state, where the fragment manager has already
    // taken care of restoring the fragments we previously had instantiated.
    if (fragment != null) {
        return fragment;
    }

    if (mCurTransaction == null) {
        mCurTransaction = mFragmentManager.beginTransaction();
    }

    fragment = getItem(position);
    // restore state
    final Fragment.SavedState savedState = mSavedStates.get(tag);
    if (savedState != null) {
        fragment.setInitialSavedState(savedState);
    }
    fragment.setMenuVisibility(false);
    fragment.setUserVisibleHint(false);
    mFragments.put(tag, fragment);
    mCurTransaction.add(container.getId(), fragment, "f" + tag);

    return fragment;
}
 
源代码6 项目: yahnac   文件: TaggedFragmentStatePagerAdapter.java
@Override
public Object instantiateItem(ViewGroup container, int position) {
    // If we already have this item instantiated, there is nothing
    // to do.  This can happen when we are restoring the entire pager
    // from its saved state, where the fragment manager has already
    // taken care of restoring the fragments we previously had instantiated.
    if (mFragments.size() > position) {
        Fragment f = mFragments.get(position);
        if (f != null) {
            return f;
        }
    }

    if (mCurTransaction == null) {
        mCurTransaction = mFragmentManager.beginTransaction();
    }

    Fragment fragment = getItem(position);
    if (DEBUG) {
        Log.v(TAG, "Adding item #" + position + ": f=" + fragment);
    }
    if (mSavedState.size() > position) {
        Fragment.SavedState fss = mSavedState.get(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
    }
    while (mFragments.size() <= position) {
        mFragments.add(null);
    }
    fragment.setMenuVisibility(false);
    fragment.setUserVisibleHint(false);
    mFragments.set(position, fragment);
    mCurTransaction.add(container.getId(), fragment, getTag(position));

    return fragment;
}
 
@Override
public Object instantiateItem(ViewGroup container, int position) {
    // If we already have this item instantiated, there is nothing
    // to do. This can happen when we are restoring the entire pager
    // from its saved state, where the fragment manager has already
    // taken care of restoring the fragments we previously had instantiated.
    if (mFragments.size() > position) {
        Fragment f = mFragments.get(position);
        if (f != null) {
            return f;
        }
    }

    if (mCurTransaction == null) {
        mCurTransaction = mFragmentManager.beginTransaction();
    }

    Fragment fragment = getItem(position);
    if (DEBUG)
        Log.v(TAG, "Adding item #" + position + ": f=" + fragment);
    if (mSavedState.size() > position) {
        Fragment.SavedState fss = mSavedState.get(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
    }
    while (mFragments.size() <= position) {
        mFragments.add(null);
    }
    fragment.setMenuVisibility(false);
    mFragments.set(position, fragment);
    mCurTransaction.add(container.getId(), fragment, getTag(position));

    return fragment;
}
 
@SuppressLint("LongLogTag")
@Override
public Object instantiateItem(ViewGroup container, int position) {
    // If we already have this item instantiated, there is nothing
    // to do.  This can happen when we are restoring the entire pager
    // from its saved state, where the fragment manager has already
    // taken care of restoring the fragments we previously had instantiated.
    if (mFragments.size() > position) {
        Fragment f = mFragments.get(position);
        if (f != null) {
            return f;
        }
    }

    if (mCurTransaction == null) {
        mCurTransaction = mFragmentManager.beginTransaction();
    }

    Fragment fragment = getItem(position);
    if (DEBUG) Log.v(TAG, "Adding item #" + position + ": f=" + fragment);
    if (mSavedState.size() > position) {
        Fragment.SavedState fss = mSavedState.get(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
    }
    while (mFragments.size() <= position) {
        mFragments.add(null);
    }
    fragment.setMenuVisibility(false);
    fragment.setUserVisibleHint(false);
    mFragments.set(position, fragment);
    mCurTransaction.add(container.getId(), fragment);

    return fragment;
}
 
@Override
public Object instantiateItem(ViewGroup container, int position) {
    // If we already have this item instantiated, there is nothing
    // to do.  This can happen when we are restoring the entire pager
    // from its saved state, where the fragment manager has already
    // taken care of restoring the fragments we previously had instantiated.
    if (mFragments.size() > position) {
        Fragment f = mFragments.get(position);
        if (f != null) {
            return f;
        }
    }

    if (mCurTransaction == null) {
        mCurTransaction = mFragmentManager.beginTransaction();
    }

    Fragment fragment = getItem(position);
    if (DEBUG) Log.v(TAG, "Adding item #" + position + ": f=" + fragment);
    if (mSavedState.size() > position) {
        Fragment.SavedState fss = mSavedState.get(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
    }
    while (mFragments.size() <= position) {
        mFragments.add(null);
    }
    // fragment.setMenuVisibility(false);
    fragment.setUserVisibleHint(false);
    mFragments.set(position, fragment);
    mCurTransaction.add(container.getId(), fragment);

    return fragment;
}
 
private void saveFragmentState(int index, Fragment fragment) {
    Fragment.SavedState savedState = getSupportFragmentManager().saveFragmentInstanceState(fragment);
    savedStateSparseArray.put(index, savedState);
}
 
public void setFragmentSavedState(String key, Fragment.SavedState state){
    savedStateMap.put(key, state);
}
 
@Override
public void onCreate() {
    savedStateMap = new HashMap<String, Fragment.SavedState>();
    super.onCreate();
}
 
源代码13 项目: CompositeAndroid   文件: FragmentPlugin.java
public void setInitialSavedState(@Nullable Fragment.SavedState state) {
    verifyMethodCalledFromDelegate("setInitialSavedState(Fragment.SavedState)");
    ((CallVoid1<Fragment.SavedState>) mSuperListeners.pop()).call(state);
}
 
源代码14 项目: CompositeAndroid   文件: FragmentPlugin.java
void setInitialSavedState(final CallVoid1<Fragment.SavedState> superCall, @Nullable Fragment.SavedState state) {
    synchronized (mSuperListeners) {
        mSuperListeners.push(superCall);
        setInitialSavedState(state);
    }
}
 
源代码15 项目: CompositeAndroid   文件: DialogFragmentDelegate.java
public void setInitialSavedState(@Nullable Fragment.SavedState state) {
    mFragmentDelegate.setInitialSavedState(state);
}
 
源代码16 项目: CompositeAndroid   文件: CompositeFragment.java
@Override
public void setInitialSavedState(@Nullable Fragment.SavedState state) {
    delegate.setInitialSavedState(state);
}
 
源代码17 项目: CompositeAndroid   文件: CompositeDialogFragment.java
@Override
public void super_setInitialSavedState(@Nullable Fragment.SavedState state) {
    super.setInitialSavedState(state);
}
 
源代码18 项目: CompositeAndroid   文件: CompositeDialogFragment.java
@Override
public void setInitialSavedState(@Nullable Fragment.SavedState state) {
    delegate.setInitialSavedState(state);
}
 
/**
 * Return the Fragment associated with a specified position.
 */
public abstract Fragment getItem(int position, Fragment.SavedState savedState);
 
源代码20 项目: CompositeAndroid   文件: ICompositeFragment.java
void setInitialSavedState(@Nullable Fragment.SavedState state);