Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

265
Visualizações
Al hacer clic en la pestaña con HorizontalPager en Android Jetpack Compse, salta a la última pestaña

Al hacer clic en la pestaña con HorizontalPager en Android Jetpack Compse, salta a la última pestaña. Agrego el código para ver el problema visible.

Este es mi código ->

 data class TabPage(val title: String?, val icon: ImageVector? = null, var screen: (@Composable () -> Unit)? = null) @OptIn(ExperimentalPagerApi::class) @Composable fun SwipeableTabLayout( modifier: Modifier = Modifier, tabPages: List<TabPage> ) { val pagerState = rememberPagerState() val scope = rememberCoroutineScope() Surface(color = Color.White) { Column { TabRow(selectedTabIndex = pagerState.currentPage) { tabPages.forEachIndexed { index, tabPage -> Tab( modifier = modifier, selected = index == pagerState.currentPage, onClick = { scope.launch { pagerState.animateScrollToPage(index) } }, text = tabPage.title?.let { title -> { Text(text = title) } }, icon = tabPage.icon?.let { icon -> { Icon(imageVector = icon, contentDescription = null) } } ) } } HorizontalPager( state = pagerState, count = tabPages.size, content = { page -> tabPages[page].screen?.invoke() }) } } }

Y aquí es donde se usa ->

 enum class SnackbarType(val value: String) { ERROR("Error"), WARNING("Warning"), SUCCESS("Success"), INFO("Info") } @Composable fun CoreComponentsSnackbarScreen(onNavigate: (Destination) -> Unit) { val tabPages = listOf( TabPage(title = SnackbarType.ERROR.value, screen = { LoadScreen() }), TabPage(title = SnackbarType.WARNING.value, screen = { LoadScreen() }), TabPage(title = SnackbarType.SUCCESS.value, screen = { LoadScreen() }), TabPage(title = SnackbarType.INFO.value, screen = { LoadScreen() }) ) Scaffold( content = { SwipeableTabLayout(tabPages = tabPages, scrollable = true) } ) } @Composable private fun LoadScreen() { Column( modifier = Modifier .fillMaxSize() .verticalScroll(rememberScrollState()) .padding(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp), ) { Text(text = "One line") Text(text = "Two lines") Text(text = "One line with action") Text(text = "Two lines with action") } }

Si la función LoadScreen() solo carga un texto simple, funciona bien, pero cuando agrega más elementos, al hacer clic salta a la última pestaña

por ejemplo, con este LoadScreen() funciona bien ->

 @Composable private fun LoadScreen() { Column( modifier = Modifier .fillMaxSize() .verticalScroll(rememberScrollState()) .padding(16.dp), verticalArrangement = Arrangement.spacedBy(16.dp), ) { Text(text = "One line") }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El problema existe en la versión 1.5.31 de Kotlin y la versión 1.0.5 de composición con la actualización a la versión 1.6.10 de Kotlin más reciente y la versión de composición relativamente actualizada, error solucionado.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda