# HasDefaultViewModelProviderFactory

Artifact: [androidx.lifecycle:lifecycle-viewmodel](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/HasDefaultViewModelProviderFactory.kt+class:androidx.lifecycle.HasDefaultViewModelProviderFactory) Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0)

*** ** * ** ***

Common/AllAndroid/JVM
- Cmn

  ```
  interface HasDefaultViewModelProviderFactory
  ```
Known direct subclasses [ComponentActivity](https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity), [Fragment](https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment), [NavBackStackEntry](https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity` | Base class for activities that enables composition of higher level components. |
| `https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment` | Static library support version of the framework's `https://developer.android.com/reference/android/app/Fragment.html`. |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` | Representation of an entry in the back stack of a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`. |

Known indirect subclasses [AbstractListDetailFragment](https://developer.android.com/reference/kotlin/androidx/navigation/fragment/AbstractListDetailFragment), [AbstractProgressFragment](https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment), [AmbientModeSupport](https://developer.android.com/reference/kotlin/androidx/wear/ambient/AmbientModeSupport), [AppCompatActivity](https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity), [AppCompatDialogFragment](https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatDialogFragment), [BaseCarAppActivity](https://developer.android.com/reference/kotlin/androidx/car/app/activity/BaseCarAppActivity), [BaseLeanbackPreferenceFragmentCompat](https://developer.android.com/reference/kotlin/androidx/leanback/preference/BaseLeanbackPreferenceFragmentCompat), [BaseSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/BaseSupportFragment), [BrandedSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/BrandedSupportFragment), [BrowseSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/BrowseSupportFragment), [CarAppActivity](https://developer.android.com/reference/kotlin/androidx/car/app/activity/CarAppActivity), [ComposableFragment](https://developer.android.com/reference/kotlin/androidx/navigation/fragment/compose/ComposableFragment), [ComposableNavHostFragment](https://developer.android.com/reference/kotlin/androidx/navigation/fragment/compose/ComposableNavHostFragment), [DefaultProgressFragment](https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/fragment/ui/DefaultProgressFragment), [DetailsSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/DetailsSupportFragment), [DialogFragment](https://developer.android.com/reference/kotlin/androidx/fragment/app/DialogFragment), [DynamicNavHostFragment](https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragment), [EditTextPreferenceDialogFragmentCompat](https://developer.android.com/reference/kotlin/androidx/preference/EditTextPreferenceDialogFragmentCompat), [EditablePdfViewerFragment](https://developer.android.com/reference/kotlin/androidx/pdf/ink/EditablePdfViewerFragment), [ErrorSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/ErrorSupportFragment), [FragmentActivity](https://developer.android.com/reference/kotlin/androidx/fragment/app/FragmentActivity), [GuidedStepSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/GuidedStepSupportFragment), [HeadersSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/HeadersSupportFragment), [LauncherActivity](https://developer.android.com/reference/kotlin/androidx/car/app/activity/LauncherActivity), [LeanbackEditTextPreferenceDialogFragmentCompat](https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackEditTextPreferenceDialogFragmentCompat), [LeanbackListPreferenceDialogFragmentCompat](https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackListPreferenceDialogFragmentCompat), [LeanbackPreferenceDialogFragmentCompat](https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackPreferenceDialogFragmentCompat), [LeanbackPreferenceFragmentCompat](https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackPreferenceFragmentCompat), [LeanbackSettingsFragmentCompat](https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackSettingsFragmentCompat), [ListFragment](https://developer.android.com/reference/kotlin/androidx/fragment/app/ListFragment), [ListPreferenceDialogFragmentCompat](https://developer.android.com/reference/kotlin/androidx/preference/ListPreferenceDialogFragmentCompat), [MediaRouteChooserDialogFragment](https://developer.android.com/reference/kotlin/androidx/mediarouter/app/MediaRouteChooserDialogFragment), [MediaRouteControllerDialogFragment](https://developer.android.com/reference/kotlin/androidx/mediarouter/app/MediaRouteControllerDialogFragment), [MediaRouteDiscoveryFragment](https://developer.android.com/reference/kotlin/androidx/mediarouter/app/MediaRouteDiscoveryFragment), [MultiSelectListPreferenceDialogFragmentCompat](https://developer.android.com/reference/kotlin/androidx/preference/MultiSelectListPreferenceDialogFragmentCompat), [NavHostFragment](https://developer.android.com/reference/kotlin/androidx/navigation/fragment/NavHostFragment), [OnboardingSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/OnboardingSupportFragment), [PdfViewerFragment](https://developer.android.com/reference/kotlin/androidx/pdf/viewer/fragment/PdfViewerFragment), [PlaybackSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/PlaybackSupportFragment), [PreferenceDialogFragmentCompat](https://developer.android.com/reference/kotlin/androidx/preference/PreferenceDialogFragmentCompat), [PreferenceFragmentCompat](https://developer.android.com/reference/kotlin/androidx/preference/PreferenceFragmentCompat), [PreferenceHeaderFragmentCompat](https://developer.android.com/reference/kotlin/androidx/preference/PreferenceHeaderFragmentCompat), [PreviewActivity](https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/PreviewActivity), [RowsSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/RowsSupportFragment), [SearchSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/SearchSupportFragment), [VerticalGridSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/VerticalGridSupportFragment), [VideoSupportFragment](https://developer.android.com/reference/kotlin/androidx/leanback/app/VideoSupportFragment)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/fragment/AbstractListDetailFragment` | A fragment supports adaptive two-pane layout. |
| `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/fragment/ui/AbstractProgressFragment` | The base class for `https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment`s that handle dynamic feature installation. |
| `https://developer.android.com/reference/kotlin/androidx/wear/ambient/AmbientModeSupport` | **This class is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/wear/ambient/AmbientLifecycleObserver` instead. <br /> |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatActivity` | Base class for activities that wish to use some of the newer platform features on older Android devices. |
| `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatDialogFragment` | A special version of `https://developer.android.com/reference/kotlin/androidx/fragment/app/DialogFragment` which uses an `https://developer.android.com/reference/kotlin/androidx/appcompat/app/AppCompatDialog` in place of a platform-styled dialog. |
| `https://developer.android.com/reference/kotlin/androidx/car/app/activity/BaseCarAppActivity` | Core logic for CarAppLibrary Activity interaction with a host. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/preference/BaseLeanbackPreferenceFragmentCompat` | This fragment provides a preference fragment with leanback-style behavior, suitable for embedding into broader UI elements. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/BaseSupportFragment` | Base class for leanback Fragments. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/BrandedSupportFragment` | Fragment class for managing search and branding using a view that implements `https://developer.android.com/reference/kotlin/androidx/leanback/widget/TitleViewAdapter.Provider`. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/BrowseSupportFragment` | A fragment for creating Leanback browse screens. |
| `https://developer.android.com/reference/kotlin/androidx/car/app/activity/CarAppActivity` | The class representing a car app activity in the main display. |
| `https://developer.android.com/reference/kotlin/androidx/navigation/fragment/compose/ComposableFragment` | This class provides a `https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment` wrapper around a composable function that is loaded via reflection. |
| `https://developer.android.com/reference/kotlin/androidx/navigation/fragment/compose/ComposableNavHostFragment` | A `https://developer.android.com/reference/kotlin/androidx/navigation/fragment/NavHostFragment` that adds support for `https://developer.android.com/reference/kotlin/androidx/navigation/fragment/compose/ComposableFragment` instances via `https://developer.android.com/reference/kotlin/androidx/navigation/fragment/compose/ComposableFragmentNavigator`. |
| `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/fragment/ui/DefaultProgressFragment` | The default `https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment` to display during installation progress. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/DetailsSupportFragment` | A fragment for creating Leanback details screens. |
| `https://developer.android.com/reference/kotlin/androidx/fragment/app/DialogFragment` | A fragment that displays a dialog window, floating in the foreground of its activity's window. |
| `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/fragment/DynamicNavHostFragment` | The `https://developer.android.com/reference/kotlin/androidx/navigation/fragment/NavHostFragment` for dynamic features. |
| `https://developer.android.com/reference/kotlin/androidx/preference/EditTextPreferenceDialogFragmentCompat` |   |
| `https://developer.android.com/reference/kotlin/androidx/pdf/ink/EditablePdfViewerFragment` | A `https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment` that extends `https://developer.android.com/reference/kotlin/androidx/pdf/viewer/fragment/PdfViewerFragment` to provide PDF editing capabilities, including annotation and form filling, leveraging the 'androidx.ink' library. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/ErrorSupportFragment` | A fragment for displaying an error indication. |
| `https://developer.android.com/reference/kotlin/androidx/fragment/app/FragmentActivity` | Base class for activities that want to use the support-based `https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment`. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/GuidedStepSupportFragment` | A GuidedStepSupportFragment is used to guide the user through a decision or series of decisions. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/HeadersSupportFragment` | An fragment containing a list of row headers. |
| `https://developer.android.com/reference/kotlin/androidx/car/app/activity/LauncherActivity` | This class handles providing the right launcher activity when running native applications and Car App Library applications. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackEditTextPreferenceDialogFragmentCompat` | Implemented a dialog to input text. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackListPreferenceDialogFragmentCompat` | Implemented a dialog to show `https://developer.android.com/reference/kotlin/androidx/preference/ListPreference` or `https://developer.android.com/reference/kotlin/androidx/preference/MultiSelectListPreference`. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackPreferenceDialogFragmentCompat` | A fragment that shows `https://developer.android.com/reference/kotlin/androidx/preference/DialogPreference`, for example `https://developer.android.com/reference/kotlin/androidx/preference/ListPreference` or `https://developer.android.com/reference/kotlin/androidx/preference/MultiSelectListPreference`. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackPreferenceFragmentCompat` | This fragment provides a fully decorated leanback-style preference fragment, including a list background and header. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackSettingsFragmentCompat` | This fragment provides a container for displaying a `https://developer.android.com/reference/kotlin/androidx/leanback/preference/LeanbackPreferenceFragmentCompat` |
| `https://developer.android.com/reference/kotlin/androidx/fragment/app/ListFragment` | Static library support version of the framework's `https://developer.android.com/reference/android/app/ListFragment.html`. |
| `https://developer.android.com/reference/kotlin/androidx/preference/ListPreferenceDialogFragmentCompat` |   |
| `https://developer.android.com/reference/kotlin/androidx/mediarouter/app/MediaRouteChooserDialogFragment` | Media route chooser dialog fragment. |
| `https://developer.android.com/reference/kotlin/androidx/mediarouter/app/MediaRouteControllerDialogFragment` | Media route controller dialog fragment. |
| `https://developer.android.com/reference/kotlin/androidx/mediarouter/app/MediaRouteDiscoveryFragment` | Media route discovery fragment. |
| `https://developer.android.com/reference/kotlin/androidx/preference/MultiSelectListPreferenceDialogFragmentCompat` |   |
| `https://developer.android.com/reference/kotlin/androidx/navigation/fragment/NavHostFragment` | NavHostFragment provides an area within your layout for self-contained navigation to occur. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/OnboardingSupportFragment` | An OnboardingSupportFragment provides a common and simple way to build onboarding screen for applications. |
| `https://developer.android.com/reference/kotlin/androidx/pdf/viewer/fragment/PdfViewerFragment` | A Fragment that renders a PDF document. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/PlaybackSupportFragment` | A fragment for displaying playback controls and related content. |
| `https://developer.android.com/reference/kotlin/androidx/preference/PreferenceDialogFragmentCompat` | Abstract base class which presents a dialog associated with a `https://developer.android.com/reference/kotlin/androidx/preference/DialogPreference`. |
| `https://developer.android.com/reference/kotlin/androidx/preference/PreferenceFragmentCompat` | A PreferenceFragmentCompat is the entry point to using the Preference library. |
| `https://developer.android.com/reference/kotlin/androidx/preference/PreferenceHeaderFragmentCompat` | `https://developer.android.com/reference/kotlin/androidx/preference/PreferenceHeaderFragmentCompat` implements a two-pane fragment for preferences. |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/tooling/PreviewActivity` | Activity used to run `@Composable` previews from Android Studio. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/RowsSupportFragment` | An ordered set of rows of leanback widgets. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/SearchSupportFragment` | A fragment to handle searches. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/VerticalGridSupportFragment` | A fragment for creating leanback vertical grids. |
| `https://developer.android.com/reference/kotlin/androidx/leanback/app/VideoSupportFragment` | Subclass of `https://developer.android.com/reference/kotlin/androidx/leanback/app/PlaybackSupportFragment` that is responsible for providing a `https://developer.android.com/reference/android/view/SurfaceView.html` and rendering video. |

*** ** * ** ***

An interface marking a `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelStoreOwner` as having a default `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` for use with `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`.

## Summary

| ### Public properties |
|---|---|---|
| `open https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` | `https://developer.android.com/reference/kotlin/androidx/lifecycle/HasDefaultViewModelProviderFactory#defaultViewModelCreationExtras()` The default `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` to pass into `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory#create(kotlin.reflect.KClass,androidx.lifecycle.viewmodel.CreationExtras)` when no overriding `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` are provided. | Cmn |
| `open https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` | `https://developer.android.com/reference/kotlin/androidx/lifecycle/HasDefaultViewModelProviderFactory#defaultViewModelProviderFactory()` The default `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` to use when no custom `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` is provided to the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`. | Cmn |

## Public properties

### defaultViewModelCreationExtras

Cmn Added in [2.5.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.5.0)

```
open val defaultViewModelCreationExtras: CreationExtras
```

The default `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` to pass into `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory#create(kotlin.reflect.KClass,androidx.lifecycle.viewmodel.CreationExtras)` when no overriding `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras` are provided.

### defaultViewModelProviderFactory

Cmn Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0)

```
open val defaultViewModelProviderFactory: ViewModelProvider.Factory
```

The default `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` to use when no custom `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` is provided to the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider`.