Deslize para dispensar
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
A animação de deslizar para dispensar
transmite a transição quando os usuários acessam a página anterior.
Os detalhes da animação do gesto de deslizar para dispensar são semelhantes ao pressionamento do RSB. O
dedo controla o progresso da animação em até 50%.
Há uma outra animação na visualização do app que está vinculada ao gesto
de dispensar. A quantidade de movimentos mostrados na visualização do app não é exatamente igual à
distância que o dedo se move. A visualização do app nunca pode sair da
borda da tela. Um efeito de compressão com alguma resistência é mostrado na borda.
Implementação
SwipeDismissableNavHost
da biblioteca de navegação
fornece o gesto de navegação de deslizar para dispensar por padrão.
Se você não estiver usando a biblioteca de navegação, ainda poderá oferecer suporte a esse gesto
de navegação em tela cheia usando BasicSwipeToDismissBox
diretamente.
Design
Ao projetar o gesto de deslizar para dispensar uma ação, não esqueça destes dois
princípios:
Borda da tela
Considere outros elementos de IU que podem ser deslizados, por exemplo, visualizações de apps paginadas.
Quando for possível deslizar para dispensar, reserve 20% da borda da tela para
acionar esse movimento.
Consulte este exemplo do código-base do Compose Material para Wear OS
para conferir um exemplo de deslizar na borda quando o conteúdo pode ser rolado horizontalmente.
Limite para voltar ou permanecer na visualização do app
Se o usuário tiver arrastado o dedo sobre mais de 50% da largura da tela e soltar o dedo,
o app vai precisar acionar o restante da animação de deslizar para trás. Se a distância percorrida for menor que
isso, o app vai voltar à visualização completa.
Se o gesto for rápido, ignore a regra de limite de 50% e deslize para trás.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-07-27 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-07-27 UTC."],[],[],null,["# Swipe to dismiss\n\n[Swipe to dismiss](/reference/kotlin/androidx/wear/compose/foundation/package-summary#BasicSwipeToDismissBox(androidx.wear.compose.foundation.SwipeToDismissBoxState,androidx.compose.ui.Modifier,kotlin.Any,kotlin.Any,kotlin.Boolean,kotlin.Function2))\nanimation conveys the transition when users navigate to the previous page.\n\nThe animation details for swipe to dismiss are similar to the RSB press. Your\nfinger controls the progress of the animation up to 50%.\n\nThere is an additional animation on the App View that is linked to the dismiss\ngesture. The amount of movement shown on the app view is not exactly the same as\nthe distance that the finger needs to move. The app view should never leave the\nedge of the screen, displaying a squeeze like effect with some resistance.\n\nImplementation\n--------------\n\n[`SwipeDismissableNavHost`](/reference/kotlin/androidx/wear/compose/navigation/package-summary#SwipeDismissableNavHost(androidx.navigation.NavHostController,kotlin.String,androidx.compose.ui.Modifier,kotlin.Boolean,androidx.wear.compose.navigation.SwipeDismissableNavHostState,kotlin.String,kotlin.Function1))\nfrom the [navigation library](/training/wearables/compose/navigation)\nprovides the swipe-to-dismiss navigation gesture by default.\n\nIf you are not using the navigation library, then you can still support this full\nscreen navigation gesture by using [`BasicSwipeToDismissBox`](/reference/kotlin/androidx/wear/compose/foundation/package-summary#BasicSwipeToDismissBox(androidx.wear.compose.foundation.SwipeToDismissBoxState,androidx.compose.ui.Modifier,kotlin.Any,kotlin.Any,kotlin.Boolean,kotlin.Function2))\ndirectly.\n\nDesign\n------\n\nWhen designing the swipe to dismiss action, keep the following two principles\nin mind:\n\n### Edge of the screen\n\nAccount for other UI elements that are swipable, such as paginated app views.\nWhen swipe to dismiss is possible, reserve 20% of the edge of the screen to\ntrigger that motion.\n\nSee this [example from the Compose Material for Wear OS codebase](https://cs.android.com/androidx/platform/frameworks/support/+/androidx-main:wear/compose/compose-material/samples/src/main/java/androidx/wear/compose/material/samples/SwipeToDismissBoxSample.kt;l=151)\nfor an example of edge-swiping when the content is horizontally scrollable.\n\n### Threshold to go back or stay on app view\n\nIf the user has dragged their finger across over 50% of the screen width,\nthe app should trigger the rest of the swipe back animation. If it's less than\nthat, the app should snap back to the full app view.\n\nIf the gesture is quick, ignore the 50% threshold rule and swipe back."]]