Save the date! Android Dev Summit is coming to Sunnyvale, CA on Oct 23-24, 2019.


abstract class FragmentStatePagerAdapter : PagerAdapter
   ↳ androidx.viewpager.widget.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 getCount() to have a working adapter.

Here is an example implementation of a pager containing fragments of lists: {@sample frameworks/support/samples/Support4Demos/src/main/java/com/example/android/supportv4/app/ * complete}

The R.layout.fragment_pager resource of the top-level fragment is: {@sample frameworks/support/samples/Support4Demos/src/main/res/layout/fragment_pager.xml * complete}

The R.layout.fragment_pager_list resource containing each individual fragment's layout is: {@sample frameworks/support/samples/Support4Demos/src/main/res/layout/fragment_pager_list.xml * complete}


Inherited constants
Public constructors
<init>(@NonNull fm: FragmentManager)

Public methods
open Any
instantiateItem(@NonNull container: ViewGroup, position: Int)

open Unit
finishUpdate(@NonNull container: ViewGroup)

abstract Fragment
getItem(position: Int)

Return the Fragment associated with a specified position.

open Unit
restoreState(@Nullable state: Parcelable?, @Nullable loader: ClassLoader?)

open Parcelable?

open Boolean
isViewFromObject(@NonNull view: View, @NonNull object: Any)

open Unit
startUpdate(@NonNull container: ViewGroup)

open Unit
setPrimaryItem(@NonNull container: ViewGroup, position: Int, @NonNull object: Any)

open Unit
destroyItem(@NonNull container: ViewGroup, position: Int, @NonNull object: Any)

Inherited functions

Public constructors


FragmentStatePagerAdapter(@NonNull fm: FragmentManager)

Public methods


@NonNull open fun instantiateItem(@NonNull container: ViewGroup, position: Int): Any


open fun finishUpdate(@NonNull container: ViewGroup): Unit


@NonNull abstract fun getItem(position: Int): Fragment

Return the Fragment associated with a specified position.


open fun restoreState(@Nullable state: Parcelable?, @Nullable loader: ClassLoader?): Unit


@Nullable open fun saveState(): Parcelable?


open fun isViewFromObject(@NonNull view: View, @NonNull object: Any): Boolean


open fun startUpdate(@NonNull container: ViewGroup): Unit


open fun setPrimaryItem(@NonNull container: ViewGroup, position: Int, @NonNull object: Any): Unit


open fun destroyItem(@NonNull container: ViewGroup, position: Int, @NonNull object: Any): Unit