Jetpack Compose の PredictiveBackHandler
コンポーザブルを使用すると、戻るジェスチャーをインターセプトしてその進行状況にアクセスできます。ユーザーの「戻る」ジェスチャーにリアルタイムで反応し、ユーザーのスワイプ量に基づいてカスタム アニメーションや動作を作成できます。
PredictiveBackHandler
を使用するには、androidx.activity:activity:1.6.0
以降を使用していることを確認してください。
PredictiveBackHandler
は、戻るジェスチャーの進行状況を表すイベントを出力する Flow<BackEventCompat>
を提供します。各イベントには次のような情報が含まれます。
progress
: 戻るジェスチャーの進行状況を示す 0 ~ 1 の浮動小数点値(0 = ジェスチャーの開始、1 = ジェスチャーの完了)。touchX
とtouchY
: タッチイベントの X 座標と Y 座標。
次のスニペットは、PredictiveBackHandler
の基本的な使用方法を示しています。
PredictiveBackHandler(true) { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress boxScale = 1F - (1F * backEvent.progress) } // code for completion boxScale = 0F } catch (e: CancellationException) { // code for cancellation boxScale = 1F } }
例: ナビゲーション ドロワーと統合する
この例では、PredictiveBackHandler
を使用してカスタムのアプリ内アニメーションを実装し、JetLagged で「戻る」ジェスチャーに応答してナビゲーション ドロワーをスムーズに操作する方法を示します。
この例では、PredictiveBackHandler
は次の目的で使用されます。
- 戻るジェスチャーの進行状況を追跡します。
- ジェスチャーの進行状況に基づいて、引き出しの
translationX
を更新します。 velocityTracker
を使用して、ジェスチャーが完了またはキャンセルされたときのジェスチャーの速度に基づいて、引き出しをスムーズに開くまたは閉じます。