//workflow/com.squareup.workflow1.ui/DecorativeViewFactory/DecorativeViewFactory
DecorativeViewFactory¶
[androidJvm]
Content
fun <OuterT : Any, InnerT : Any> DecorativeViewFactory(type: KClass<OuterT>, map: (OuterT) -> InnerT, initializeView: View.() -> Unit = { showFirstRendering() }, doShowRendering: (view: View, ViewShowRendering<InnerT>, OuterT, env: ViewEnvironment) -> Unit = { _, innerShowRendering, outerRendering, viewEnvironment ->
innerShowRendering(map(outerRendering), viewEnvironment)
})
More info
Convenience constructor for cases requiring no changes to the ViewEnvironment.
[androidJvm]
Content
fun <OuterT : Any, InnerT : Any> DecorativeViewFactory(type: KClass<OuterT>, map: (OuterT, ViewEnvironment) -> Pair<InnerT, ViewEnvironment>, initializeView: View.() -> Unit = { showFirstRendering() }, doShowRendering: (view: View, ViewShowRendering<InnerT>, OuterT, env: ViewEnvironment) -> Unit = { _, innerShowRendering, outerRendering, viewEnvironment ->
val (innerRendering, processedEnv) = map(outerRendering, viewEnvironment)
innerShowRendering(innerRendering, processedEnv)
})
More info
Parameters¶
androidJvm
map | called to convert instances of OuterT to InnerT, and to allow ViewEnvironment to be transformed. |
initializeView | Optional function invoked immediately after the View is created (that is, immediately after the call to ViewFactory.buildView). showRendering, getRendering and environment are all available when this is called. Defaults to a call to View.showFirstRendering. |
doShowRendering | called to apply the ViewShowRendering function for InnerT, allowing pre- and post-processing. Default implementation simply uses map to extract the InnerT instance from OuterT and makes the function call. |