Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

242
Vistas
¿Cómo se deben nombrar los parámetros modificadores en el componente de composición de Jetpack que obtiene dos o más modificadores?

Si tenemos un componente de composición que obtiene dos o más modificadores, ¿cómo debemos manejarlo? Me refiero a la denominación de modificadores mientras que pelusa se queja de cambiar el nombre del parámetro modificador

Ejemplo de código para averiguarlo fácilmente:

 @Composable private fun CompletionSection(iconModifier: Modifier, textModifier: Modifier, isActivated: Boolean, newText: String?) { if (isActivated) { Icon( painter = painterResource(R.drawable.ds_ic_check_circle), modifier = iconModifier .wrapContentSize() .padding(top = 18.dp), tint = MaterialTheme.colors.positive, contentDescription = null ) } else if (!newText.isNullOrBlank()) { Surface( modifier = textModifier.padding(top = 18.dp), shape = RoundedCornerShape(32.dp), border = BorderStroke(width = 2.dp, color = MaterialTheme.colors.primary.copy(alpha = 0.6f)), ) { Text( overflow = TextOverflow.Ellipsis, maxLines = 1, fontSize = 11.sp, color = MaterialTheme.colors.primary.copy(alpha = 0.6f), text = newText, modifier = Modifier .defaultMinSize(minHeight = 20.dp) .wrapContentSize() .padding(horizontal = 6.dp, vertical = 2.dp), style = MaterialTheme.typography.android.caption2 ) } } }

Aquí, donde se usa la función →

 ConstraintLayout( modifier = Modifier.fillMaxSize(), constraintSet = decoupledConstraints( marginSpacing02 = marginSpacing02, marginSpacing01 = marginSpacing01, entity = entity ) ) { CompletionSection( iconModifier = Modifier.layoutId("completedIcon"), textModifier = Modifier.layoutId("newTextField"), isActivated = isActivated, newText = newText ) }
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Supongo que el motivo de este tipo de advertencia es que generalmente tiene un modificador que debe aplicarse a toda la vista. Tener otro modificador en los argumentos está bien, pero, por ejemplo, si necesita aplicar Modifier.align , tuvo que duplicarlo.

En su caso, cuando mira desde dónde está usando esta función, es difícil saber qué modificador se aplicará y cuál no; depende de otros parámetros y debe conocer la lógica.

Creo que al menos podría tener un modificador genérico llamado modifier , que se aplicaría a ambas vistas y dos con nombre; en mi opinión, esto haría que la API fuera un poco más predecible. Puede encadenar modificadores como este: modifier.then(iconModifier).yourModifier()

De todos modos, puedes suprimirlo:

 @SuppressLint("ModifierParameter") @Composable // ...
over 4 years ago · Santiago Trujillo Denunciar

0

Los componibles están diseñados para aceptar solo un Modifier , por lo que la pelusa no se satisfará sin importar cómo los cambie de nombre.
El Composable es algo así como una unidad de interfaz, y al tener múltiples modificadores está filtrando su funcionamiento interno a los componibles externos que lo usan.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda