0Pricing
Jetpack Compose Academy · Aula

Preservando o Estado das Abas ao Alternar

Mantenha a rolagem e o estado de cada aba.

Preservando o Estado das Abas ao Alternar é uma aula grátis de Jetpack Compose Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Jetpack Compose Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Jetpack Compose Academy inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

The Lost Scroll Problem

By default, leaving a tab and coming back rebuilds it from scratch, so your scroll position and inputs vanish. Annoying, right? 😅

Why It Happens

A plain navigate replaces the destination, so Compose forgets the old screen. Preserving state means telling navigation to save it instead.

Save on the Way Out

When you pop the old tab, add saveState so its UI state is stored rather than thrown away.

popUpTo(startRoute) {
  saveState = true
}

Restore on the Way In

When you navigate to the tab, set restoreState so its previously saved state comes right back.

navController.navigate(tab.route) {
  restoreState = true
}

The Three-Flag Combo

Together saveState, restoreState, and launchSingleTop give the classic, smooth tab-switching behavior users expect.

popUpTo(start) { saveState = true }
launchSingleTop = true
restoreState = true

rememberSaveable Helps Too

For values inside a screen, rememberSaveable keeps things like text fields alive across recreation, complementing nav state saving.

var query by rememberSaveable { mutableStateOf("") }

Lists Need Saved Scroll

A LazyColumn keeps its scroll when you use rememberLazyListState, and saved nav state lets that survive a tab round-trip.

val listState = rememberLazyListState()
LazyColumn(state = listState) { /* ... */ }

Watch the Start Route

Always pop up to the same start destination id so the saved-state bundles map back to the correct tab.

popUpTo(navController.graph.findStartDestination().id)

Verify by Switching

Test it: scroll one tab, jump to another, then return. With the flags set, the scroll should be exactly where you left it.

When Not to Restore

Sometimes a tab should refresh on entry, like a feed. Then simply skip restoreState for that route and let it rebuild.

State Beyond One Screen

For data that must outlive even the tab, lift it into a shared ViewModel so navigation flags only handle UI, not your real data.

Quick Check

You learned to keep each tab fresh. Time for a check.

Recap

You kept tabs sticky: saveState + restoreState + launchSingleTop preserve scroll and input, with rememberSaveable backing up in-screen values. Smooth! ✨

Perguntas Frequentes

A aula “Preservando o Estado das Abas ao Alternar” é grátis?

Sim — o texto completo de “Preservando o Estado das Abas ao Alternar” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Jetpack Compose Academy, atualize para CoddyKit PRO. O curso de Jetpack Compose Academy inclui 4 aulas no total.

O que vou aprender em “Preservando o Estado das Abas ao Alternar”?

Mantenha a rolagem e o estado de cada aba. Você pratica Jetpack Compose Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Jetpack Compose Academy?

Nenhuma experiência prévia é necessária. Jetpack Compose Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Preservando o Estado das Abas ao Alternar”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Jetpack Compose Academy?

Sim. Cada aula de Jetpack Compose Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. NavigationBar com Várias Abas
  2. Destacando a Rota Selecionada
  3. Preservando o Estado das Abas ao Alternar
  4. TabRow e Páginas Deslizáveis
← Voltar para Jetpack Compose Academy