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
를 사용하여 동작이 완료되거나 취소될 때 동작 속도에 따라 서랍을 부드럽게 열거나 닫습니다.