当前位置: 首页>>代码示例>>Java>>正文


Java Fragment.SavedState方法代码示例

本文整理汇总了Java中android.support.v4.app.Fragment.SavedState方法的典型用法代码示例。如果您正苦于以下问题:Java Fragment.SavedState方法的具体用法?Java Fragment.SavedState怎么用?Java Fragment.SavedState使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.support.v4.app.Fragment的用法示例。


在下文中一共展示了Fragment.SavedState方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: saveState

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
@Override
public Parcelable saveState() {
  Bundle state = new Bundle();
  if (mSavedState.size() > 0) {
    Fragment.SavedState[] fss = new Fragment.SavedState[mSavedState.size()];
    mSavedState.toArray(fss);
    state.putParcelableArray("states", fss);
  }
  for (int i = 0; i < mFragments.size(); i++) {
    Fragment f = mFragments.get(i);
    if (f != null && f.isAdded()) {
      String key = "f" + i;
      mFragmentManager.putFragment(state, key, f);
    }
  }
  state.putString("mode", this.mode);
  return state;
}
 
开发者ID:Elias33,项目名称:Quran,代码行数:19,代码来源:FragmentStatePagerAdapter.java

示例2: instantiateItem

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
@Override
public Object instantiateItem(ViewGroup container, int position)
{
	if(service == null)
		return new View(mainScreen);
	int tabId = service.getTabByPosition(position).id;
	TabFragment fragment = tabFragments.get(tabId);
	if(fragment == null)
	{
		Fragment.SavedState fss = savedStates.get(tabId);
		fragment = new TabFragment();
		fragment.setTabId(tabId);
		fragment.setInitialSavedState(fss);
		if(curTransaction == null)
			curTransaction = fragmentManager.beginTransaction();
		curTransaction.add(container.getId(), fragment);
		tabFragments.put(tabId, fragment);
	}
	return fragment;
}
 
开发者ID:mniip,项目名称:bananapeel,代码行数:21,代码来源:TabAdapter.java

示例3: instantiateItem

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
@Override
public Object instantiateItem(ViewGroup container, int position) {
    final Fragment existing = fragments.get(position);
    if (existing != null) {
        return existing;
    }
    if (currentTransaction == null) {
        currentTransaction = fragmentManager.beginTransaction();
    }
    Fragment fragment = getItem(position);
    if (DEBUG) Log.v(TAG, "Adding item #" + position + ": f=" + fragment);
    if (enableSavedStates && savedState.size() > position) {
        Fragment.SavedState fss = savedState.get(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
    }
    if (fragment != currentPrimaryItem) {
        setItemVisible(fragment, false);
    }
    fragments.put(position, fragment);
    currentTransaction.add(container.getId(), fragment);
    return fragment;
}
 
开发者ID:Laaidback,项目名称:A.scribe,代码行数:25,代码来源:FragmentStatePagerAdapter2.java

示例4: instantiateItem

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
@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;
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:31,代码来源:UpdatableFragmentPagerAdapter.java

示例5: instantiateItem

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
@SuppressLint("CommitTransaction")
@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) Timber.v("Adding item #%d: f=%s", position, 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;
}
 
开发者ID:Elias33,项目名称:Quran,代码行数:37,代码来源:FragmentStatePagerAdapter.java

示例6: getCurrentSavedState

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
private Fragment.SavedState getCurrentSavedState(int position) {
    SparseArray<Fragment.SavedState> states = mSavedState.get(position);
    if (states != null) {
        return states.get(getCurrentViewMode(position));
    } else {
        return null;
    }
}
 
开发者ID:mocircle,项目名称:devsuite-android,代码行数:9,代码来源:MultiFragmentStatePagerAdapter.java

示例7: setSavedState

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
private void setSavedState(int position, int viewMode, Fragment.SavedState savedState) {
    SparseArray<Fragment.SavedState> states = mSavedState.get(position);
    if (states == null) {
        mSavedState.set(position, new SparseArray<Fragment.SavedState>());
    }
    mSavedState.get(position).put(viewMode, savedState);
}
 
开发者ID:mocircle,项目名称:devsuite-android,代码行数:8,代码来源:MultiFragmentStatePagerAdapter.java

示例8: restoreSavedState

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
private void restoreSavedState(Bundle bundle) {
    Iterable<String> keys = bundle.keySet();
    for (String key : keys) {
        if (key.startsWith("states")) {
            int position = Integer.parseInt(key.substring("states".length()));
            while (mSavedState.size() <= position) {
                mSavedState.add(null);
            }
            SparseArray<Fragment.SavedState> states = bundle.getSparseParcelableArray(key);
            mSavedState.set(position, states);
        }
    }
}
 
开发者ID:mocircle,项目名称:devsuite-android,代码行数:14,代码来源:MultiFragmentStatePagerAdapter.java

示例9: instantiateItem

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
@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;
}
 
开发者ID:aliumujib,项目名称:Orin,代码行数:36,代码来源:CustomFragmentStatePagerAdapter.java

示例10: removeToDetachFragment

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
private Fragment removeToDetachFragment(StateChange stateChange, Path key) {
    Fragment fragment = fragmentManager.findFragmentByTag(key.getFragmentTag());
    if(fragment != null && (fragment.isDetached() || fragment.getView() == null)) {
        FragmentTransaction fragmentTransaction = beginFragmentTransaction(stateChange);
        Fragment.SavedState savedState = fragmentManager.saveFragmentInstanceState(fragment);
        fragmentTransaction.remove(fragment);
        fragmentTransaction.commitNow();
        fragment.setInitialSavedState(savedState);
    }
    return fragment;
}
 
开发者ID:Zhuinden,项目名称:simple-stack,代码行数:12,代码来源:MasterDetailFragmentStateChanger.java

示例11: instantiateItem

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
@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.
        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);
        Fragment.SavedState fss = mSavedState.get(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
        fragment.setMenuVisibility(false);
        fragment.setUserVisibleHint(false);
        mFragments.put(position, fragment);
        mCurTransaction.add(container.getId(), fragment);

        return fragment;
    }
 
开发者ID:snowwolf10285,项目名称:PicShow-zhaipin,代码行数:30,代码来源:FragmentListPageAdapter.java

示例12: instantiateItem

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
@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 = getCurrentFragment(position);
        if (f != null) {
            return f;
        }
    }

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

    int currentViewMode = getCurrentViewMode(position);
    Fragment fragment = getItem(position, currentViewMode);
    // NEW: record the fragment's position and view mode
    viewModeMap.put(fragment, currentViewMode);
    positionMap.put(fragment, position);
    if (DEBUG)
        Log.v(TAG, "Adding item #" + position + "-" + currentViewMode + ": f=" + fragment);
    if (mSavedState.size() > position) {
        Fragment.SavedState fss = getCurrentSavedState(position);
        if (fss != null) {
            fragment.setInitialSavedState(fss);
        }
    }
    while (mFragments.size() <= position) {
        mFragments.add(null);
    }
    fragment.setMenuVisibility(false);
    fragment.setUserVisibleHint(false);
    setCurrentFragment(position, fragment);

    mCurTransaction.add(container.getId(), fragment);

    return fragment;
}
 
开发者ID:mocircle,项目名称:devsuite-android,代码行数:42,代码来源:MultiFragmentStatePagerAdapter.java

示例13: setCurrentSavedState

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
private void setCurrentSavedState(int position, Fragment.SavedState savedState) {
    setSavedState(position, getCurrentViewMode(position), savedState);
}
 
开发者ID:mocircle,项目名称:devsuite-android,代码行数:4,代码来源:MultiFragmentStatePagerAdapter.java

示例14: getItem

import android.support.v4.app.Fragment; //导入方法依赖的package包/类
/**
 * Return the Fragment associated with a specified position.
 */
public abstract Fragment getItem(int position, Fragment.SavedState savedState);
 
开发者ID:liuyuejinqiu,项目名称:ScaleViewPager,代码行数:5,代码来源:FragmentStatePagerAdapter.java


注:本文中的android.support.v4.app.Fragment.SavedState方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。