액세스 진행률 수동으로 확인

Jetpack Compose의 PredictiveBackHandler 컴포저블을 사용하면 뒤로 동작을 가로채고 진행 상황에 액세스할 수 있습니다. 사용자의 뒤로 동작에 실시간으로 반응하여 사용자가 스와이프한 거리에 따라 맞춤 애니메이션이나 동작을 만들 수 있습니다.

PredictiveBackHandler를 사용하려면 androidx.activity:activity:1.6.0 이상을 사용해야 합니다.

PredictiveBackHandler는 뒤로 동작의 진행률을 나타내는 이벤트를 내보내는 Flow<BackEventCompat>를 제공합니다. 각 이벤트에는 다음과 같은 정보가 포함됩니다.

  • progress: 뒤로 동작의 진행률을 나타내는 0과 1 사이의 부동 소수점 값입니다 (0 = 동작 시작, 1 = 동작 완료).
  • touchXtouchY: 터치 이벤트의 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에서 뒤로 동작에 대한 응답으로 탐색 창과 원활하게 상호작용하는 방법을 보여줍니다.

그림 5. 뒤로 탐색 예측을 지원하는 탐색 창

이 예에서 PredictiveBackHandler는 다음과 같은 용도로 사용됩니다.

  • 뒤로 동작의 진행 상황을 추적합니다.
  • 동작 진행률에 따라 드로어의 translationX를 업데이트합니다.
  • velocityTracker를 사용하여 동작이 완료되거나 취소될 때 동작 속도에 따라 서랍을 부드럽게 열거나 닫습니다.