# InitializerViewModelFactoryBuilder

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

*** ** * ** ***

Common/AllAndroid/JVM
- Cmn

  ```
  @ViewModelFactoryDsl
  class InitializerViewModelFactoryBuilder
  ```

*** ** * ** ***

DSL for constructing a new `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory`

## Summary

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#InitializerViewModelFactoryBuilder()()` | Cmn |

| ### Public functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<T : https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel> https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#addInitializer(kotlin.reflect.KClass,kotlin.Function1)(clazz: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>, initializer: https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras.() -> T)` Associates the specified `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#addInitializer(kotlin.reflect.KClass,kotlin.Function1)` with the given `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel` class. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` | `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#build()()` Returns an instance of `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` created from the initializers set on this builder. | Cmn |

| ### Extension functions |
|---|---|---|
| `inline https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<VM : https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel> https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder.https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#(androidx.lifecycle.viewmodel.InitializerViewModelFactoryBuilder).initializer(kotlin.Function1)( noinline initializer: https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras.() -> VM )` Add an initializer to the `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder` | Cmn |

## Public constructors

### InitializerViewModelFactoryBuilder

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

```
InitializerViewModelFactoryBuilder()
```

## Public functions

### addInitializer

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

```
fun <T : ViewModel> addInitializer(clazz: KClass<T>, initializer: CreationExtras.() -> T): Unit
```

Associates the specified `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#addInitializer(kotlin.reflect.KClass,kotlin.Function1)` with the given `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel` class.

| Parameters |
|---|---|
| `clazz: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>` | The `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel` class to associate with the `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder#addInitializer(kotlin.reflect.KClass,kotlin.Function1)`. |
| `initializer: https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/CreationExtras.() -> T` | The factory lambda associated with the `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModel` class. |

### build

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

```
fun build(): ViewModelProvider.Factory
```

Returns an instance of `https://developer.android.com/reference/kotlin/androidx/lifecycle/ViewModelProvider.Factory` created from the initializers set on this builder.

## Extension functions

### InitializerViewModelFactoryBuilder.initializer

Cmn Artifact: [androidx.lifecycle:lifecycle-viewmodel](https://developer.android.com/jetpack/androidx/releases/lifecycle) [View Source](https://cs.android.com/search?q=file:androidx/lifecycle/viewmodel/InitializerViewModelFactory.kt+function:initializer)

```
inline fun <VM : ViewModel> InitializerViewModelFactoryBuilder.initializer(
    noinline initializer: CreationExtras.() -> VM
): Unit
```

Add an initializer to the `https://developer.android.com/reference/kotlin/androidx/lifecycle/viewmodel/InitializerViewModelFactoryBuilder`