android.support.v13.app
Class FragmentStatePagerAdapter

java.lang.Object
  extended by android.support.v4.view.PagerAdapter
      extended by android.support.v13.app.FragmentStatePagerAdapter

public abstract class FragmentStatePagerAdapter
extends android.support.v4.view.PagerAdapter

Implementation of PagerAdapter that uses a Fragment to manage each page. This class also handles saving and restoring of fragment's state.

This version of the pager is more useful when there are a large number of pages, working more like a list view. When pages are not visible to the user, their entire fragment may be destroyed, only keeping the saved state of that fragment. This allows the pager to hold on to much less memory associated with each visited page as compared to FragmentPagerAdapter at the cost of potentially more overhead when switching between pages.

When using FragmentPagerAdapter the host ViewPager must have a valid ID set.

Subclasses only need to implement getItem(int) and PagerAdapter.getCount() to have a working adapter.

Here is an example implementation of a pager containing fragments of lists:

The R.layout.fragment_pager resource of the top-level fragment is:

The R.layout.fragment_pager_list resource containing each individual fragment's layout is:


Field Summary
 
Fields inherited from class android.support.v4.view.PagerAdapter
POSITION_NONE, POSITION_UNCHANGED
 
Constructor Summary
FragmentStatePagerAdapter(android.app.FragmentManager fm)
           
 
Method Summary
 void destroyItem(android.view.ViewGroup container, int position, java.lang.Object object)
           
 void finishUpdate(android.view.ViewGroup container)
           
abstract  android.app.Fragment getItem(int position)
          Return the Fragment associated with a specified position.
 java.lang.Object instantiateItem(android.view.ViewGroup container, int position)
           
 boolean isViewFromObject(android.view.View view, java.lang.Object object)
           
 void restoreState(android.os.Parcelable state, java.lang.ClassLoader loader)
           
 android.os.Parcelable saveState()
           
 void setPrimaryItem(android.view.ViewGroup container, int position, java.lang.Object object)
           
 void startUpdate(android.view.ViewGroup container)
           
 
Methods inherited from class android.support.v4.view.PagerAdapter
destroyItem, finishUpdate, getCount, getItemPosition, getPageTitle, getPageWidth, instantiateItem, notifyDataSetChanged, registerDataSetObserver, setPrimaryItem, startUpdate, unregisterDataSetObserver
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FragmentStatePagerAdapter

public FragmentStatePagerAdapter(android.app.FragmentManager fm)
Method Detail

getItem

public abstract android.app.Fragment getItem(int position)
Return the Fragment associated with a specified position.


startUpdate

public void startUpdate(android.view.ViewGroup container)
Overrides:
startUpdate in class android.support.v4.view.PagerAdapter

instantiateItem

public java.lang.Object instantiateItem(android.view.ViewGroup container,
                                        int position)
Overrides:
instantiateItem in class android.support.v4.view.PagerAdapter

destroyItem

public void destroyItem(android.view.ViewGroup container,
                        int position,
                        java.lang.Object object)
Overrides:
destroyItem in class android.support.v4.view.PagerAdapter

setPrimaryItem

public void setPrimaryItem(android.view.ViewGroup container,
                           int position,
                           java.lang.Object object)
Overrides:
setPrimaryItem in class android.support.v4.view.PagerAdapter

finishUpdate

public void finishUpdate(android.view.ViewGroup container)
Overrides:
finishUpdate in class android.support.v4.view.PagerAdapter

isViewFromObject

public boolean isViewFromObject(android.view.View view,
                                java.lang.Object object)
Specified by:
isViewFromObject in class android.support.v4.view.PagerAdapter

saveState

public android.os.Parcelable saveState()
Overrides:
saveState in class android.support.v4.view.PagerAdapter

restoreState

public void restoreState(android.os.Parcelable state,
                         java.lang.ClassLoader loader)
Overrides:
restoreState in class android.support.v4.view.PagerAdapter