スワイプによる非表示
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
スワイプして閉じるアニメーションは、ユーザーが前のページに移動するときの遷移を表現します。
スワイプして閉じるアニメーションの詳細は、RSB の押下と同様です。アニメーションの進行を最大 50%、指で制御します。
アプリビューには、閉じる操作にリンクされている追加のアニメーションがあります。アプリビューに表示される動きの量は、指を動かす必要のある距離とまったく同じというわけではありません。アプリビューが画面の端から離れないようにし、ある程度の抵抗を持たせてスクイーズのような効果を表示します。
実装
ナビゲーション ライブラリの SwipeDismissableNavHost
は、デフォルトでスワイプして閉じるナビゲーション ジェスチャーを提供します。
ナビゲーション ライブラリを使用していない場合でも、BasicSwipeToDismissBox
を直接使用することで、この全画面ナビゲーション ジェスチャーをサポートできます。
デザイン
スワイプして閉じる操作を設計する際は、次の 2 つの原則に留意してください。
画面の端
スワイプ可能な他の UI 要素(ページ分けされたアプリビューなど)を考慮します。スワイプして閉じることができる場合は、画面の端の 20% を予約して、その動きをトリガーします。
コンテンツが水平方向にスクロール可能な場合の画面端スワイプの例については、Wear OS 向け Compose マテリアルのコードベースの例をご覧ください。
戻る操作かアプリビューに残る操作かのしきい値
ユーザーが画面幅の 50% 以上を指でドラッグした場合、アプリは残りのスワイプバック アニメーションをトリガーする必要があります。これより小さい場合、アプリは完全なアプリビューにスナップして戻ります。
操作が速い場合は、50% のしきい値ルールを無視してスワイプバックします。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[null,null,["最終更新日 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."]]