방학을 맞이하여앱 개발을 하고 있는데, 기록으로 남기면 좋을 내용들이 꽤나 있을 것 같아서 이렇게 글을 써보려고 한다.
Shared Element Transition을 이용하려고 해보았는데, 구글 로그인 후 startActivity로 화면전환을 시도하였지만, 클래스는 로드가 되고 레이아웃은 그려지지 않는 문제가 발생하였고, 이에 대한 해결책이 이번 일지의 주된 내용이다.
위 영상이 만들고 싶은 결과물(지금은 완성이 되었지만..)
버그는 항상 앱 개발을 하면서 있지만, 이번의 짜증나는 점은 Critical한 에러가 아니기 때문에.. 즉 안드로이드 입장에서는 별 이상이 없다고 판단하는 것이다.
사실 이건 에러가 아니라 내가 잘못한 것 이였는데, 구글에 나와있는 자료를 맹신한 것이 원인이였다. 보통 나는 개발자 레퍼런스는 자료가 찾기 힘든경우 보는데, 이번에도 대다수의 블로그와 유튜브 동영상에서 한 것을 따라하다...이 꼴이 난 것이였다.
정리하자면 :
공유요소 전환을 사용하기 위해서는 다음 과정이 모두(하나라도 빠지면 안됨. 빠져도, 에러는 뿜지 않는다) 필요하다.
1. style에 정의
2. transtition 폴더 만들고 효과 정의(빠뜨렸던 부분)
3. 뷰에 transitionName 속성 주기
4. 2에서 만들었던 효과 style에 정의
5. 나머지는 java코드로 잘 짜보자.
뭔가 용두사미인것 같은 글이지만, 내가 기억하려고 쓰는 글이기 때문에 별 문제는 되지 않을 것이다.
+ 추가적으로 위 영상을 보면 화면 전환시 흰색으로 깜빡이는 fade 효과가 들어가게 된다. 이는 화면 전환을 자연스럽게 하려는 페이크인데, 이를 제거하고 싶으면 다음 코드를 쓰자. 네비게이션바나 상태표시줄만 제거할 수도 있다!
여기서 R.id.back은 뷰들을 담고있는 ConstraintLayout이다. 만약 네비바랑 상태줄만 깜빡임을 제거하고 싶다면 저 back 부분만 지워서 쓰면 되고, 아니라면 그대로 두고 id를 바꿔서 쓰면 된다. 그런데, 이걸 쓰게 되면, 화면에 요소가 좀 있는 경우에는 부자연스럽다. 갑자기 뷰들이 뙇 하고 나타나기 때문에..
'Android' 카테고리의 다른 글
안드로이드 앱 개발일지 #2 Editor를 만들며 (0) | 2020.07.20 |
---|---|
Android Span에 관한 몇가지 고찰들 (0) | 2020.07.15 |
안드로이드 EditText 프리징 관련 문제 해결 (1) | 2020.07.14 |
안드로이드 ripple effect (0) | 2020.02.11 |
안드로이드 The style on this component requires your app theme to be Theme.AppCompat 에러 해결 (0) | 2020.02.11 |