Skip to content

MediaPreview에서 predictive back 제스처 중 이전 화면이 보이지 않는 현상 #81

@KimSungBeen

Description

@KimSungBeen

요약

NavDisplaypredictivePopTransitionSpec가 설정되어 있고, 일부 화면에서는 뒤로 가기 제스처 진행 중 현재 화면 뒤로 이전 화면이 정상적으로 드러납니
다.

하지만 MediaPreview 화면에서는 제스처가 완료될 때까지 이전 화면이 보이지 않고, pop이 끝난 뒤에야 이전 화면이 나타납니다.

기대 동작

MediaPreview 화면에서 시스템 predictive back 제스처를 수행하면, 제스처 진행 중 predictivePopTransitionSpec에 따라 이전 화면이 뒤에서 점진적으로 보
여야 합니다.

실제 동작

MediaPreview에서는 제스처 진행 중에도 현재 화면만 유지되고, 제스처가 완료되어 pop이 끝난 뒤에야 이전 화면이 나타납니다.

원인 추정

MediaPreview가 자체적으로 BackHandler를 등록하고 있어, back 이벤트를 NavDisplay보다 먼저 소비하는 것으로 보입니다.

관련 코드:

  • app/src/main/java/com/chac/AppNavigation.kt
    • NavDisplay(..., predictivePopTransitionSpec = { ... })
  • feature/album/src/main/java/com/chac/feature/album/gallery/component/MediaPreviewScreen.kt
    • BackHandler(onBack = onDismiss)

이 때문에 NavDisplaypredictivePopTransitionSpec가 제스처 진행 중 적용되지 못하는 것으로 추정됩니다.

참고

  • GalleryScreen은 특정 상태에서만 BackHandler를 활성화하므로 일반 상태에서는 predictive back이 정상 동작할 수 있습니다.
  • MediaPreview는 항상 활성화된 BackHandler를 사용하고 있어 predictive back 애니메이션을 막을 가능성이 높습니다.
  • 갤러리에서 사진을 길게 눌러 진입한 MediaPreview 화면에서 재현됩니다.

대응 방향

  • MediaPreview의 로컬 BackHandler를 제거하고 NavDisplayonBack에 뒤로 가기 처리를 맡기기

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions