Estoy escribiendo un código de buscapersonas en Jetpack Compose y llegué a una situación en la que necesito cambiar el número de página haciendo clic en un botón. Este es mi evento al hacer clic en el botón:
onClick = {pagerState.scrollToPage(page=currentPager+1)} pero cuando hago esto, aparece este error: Suspend function 'scrollToPage' should be called only from a coroutine or another suspend function
Obtuve una solución a esto agregando:
onClick = {GlobalScope.launch (Dispatchers.Main) {pagerState.scrollToPage(page=currentPager+1)}}pero aún no se recomienda GlobalScope.launch. Arriba, onClick se llama dentro de las funciones básicas de composición. ¿Cómo puedo solucionar este problema en Jetpack Compose?
Ir a través de esta documentación: Localizador acompañante
Aquí hay un código sin procesar: código sin procesar para desplazarse a la página
Si desea saltar a una página específica, llame al método pagerState.scrollToPage(index) o pagerState.animateScrollToPage(index) en un CoroutineScope:
val pagerState = rememberPagerState() val scope = rememberCoroutineScope() HorizontalPager(count = 10, state = pagerState) { page -> // ...page content } // Later, scroll to page 2 scope.launch { pagerState.scrollToPage(2) }Debe usar el código a continuación para crear un ámbito de rutinas en su componible.
val coroutinesScope = rememberCoroutineScope() Tenga en cuenta que solo puede llamar a esto dentro de un componible, por lo que no puede crear coroutinesScope dentro de su onClick() y tiene que inicializarlo en la parte superior de su componible.