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

204
Vistas
Cómo centrar el contenido de un NavigationRail en Jetpack Compose (falta menuGravity)

Problema

El androidx.compose.material.NavigationRail tiene en alguna documentación una alineación "centrada" opcional. No puedo lograr esto usando Jetpack Compose.

El atributo XML "antiguo" es app:menuGravity="center" según este tutorial .

Cosas que intenté sin éxito

Traté de poner NavigationRail (un contenedor simple para el widget real) en un cuadro con un conjunto de alineación:

 Box(contentAlignment = Alignment.Center) { NavigationRail( selectedItem = selectedItem, onSelectItem = { selectedItem = it } ) }

y poniéndolo directamente en el Composable original:

 NavigationRail( modifier = modifier.width(80.dp), backgroundColor = MaterialTheme.colors.surface ) { Box(contentAlignment = Alignment.Center) { for (item in NavigationItem.values()) { NavigationRailItem( selected = selectedItem == item, onClick = { onSelectItem.invoke(item) }, icon = { Icon(item.icon, item.title) }, alwaysShowLabel = true, selectedContentColor = MaterialTheme.colors.primaryVariant, unselectedContentColor = MaterialTheme.colors.primary, label = { Text(item.title, modifier = Modifier.padding(top = 8.dp)) } ) } } }

Captura de pantalla (tomada del mismo sitio que el tutorial vinculado)

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Como se sugiere en el ejemplo , para centrar el contenido de navigationRail, puede usar algo como:

 NavigationRail { Spacer(Modifier.weight(1f)) items.forEachIndexed { index, item -> NavigationRailItem( //.... ) } Spacer(Modifier.weight(1f)) }

Para lograr una alineación inferior, simplemente use un Spacer :

 NavigationRail { Spacer(Modifier.weight(1f)) items.forEachIndexed { index, item -> NavigationRailItem( //.... ) } }

ingrese la descripción de la imagen aquí

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