La mayoría de mis pantallas (vistas) comienzan con un Box componible para contener todos los componibles secundarios (componentes).
// background Box( modifier = Modifier .fillMaxSize() .background(customColor) ) { // foreground Column() }En lugar de tener que crear las propiedades del modificador en cada pantalla, ¿cómo crearía un modificador reutilizable?
En un caso tan simple, puede hacer lo siguiente (no es necesario usar then ):
fun Modifier.myModifier(customColor: Color) = this.fillMaxSize() .background(customColor) En caso de que necesites guardar algún estado en tu modificador usando remember u otros generadores de estado anotados con @Composable , puedes hacerlo con Modifier.composed . Por ejemplo, así es como puede agregar animación a su modificador:
fun Modifier.myModifier(customColor: Color): Modifier = composed { val animatedColor by animateColorAsState(customColor) this.fillMaxSize() .background(animatedColor) } Tenga en cuenta que dentro de composed solo debe usar elementos componibles con anotaciones de estado, no vistas. Más detalles se pueden encontrar aquí .
Puedes crearlo así
fun Modifier.myModifier(customColor: Color) = this.then( Modifier.fillMaxSize().background(customColor) )