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 throw e } }
예: 탐색 창과 통합
이 예에서는 PredictiveBackHandler를 사용하여 다음 작업을 실행합니다.
- 뒤로 동작의 진행률을 추적합니다.
- 동작 진행률에 따라 창의
translationX를 업데이트합니다. - 동작이 완료되거나 취소될 때 동작 속도에 따라
velocityTracker를 사용하여 창을 원활하게 열거나 닫습니다.