리사이클러 뷰에서 아이템을 클릭했을 때, 아이템의 데이터를 가지고 새로운 액티비티에 보여주려고 한다.

이 때, 아이템이 점점 커져 화면 전체를 차지해서 보여지도록 만드는게 목표였다.

공부 중에 "android:transitionName" 속성을 이용한 애니메이션 효과를 주면 만들수 있을 것 같았다. 

그래서 먼저, itemView를 클릭했을 때, 새로운 액티비티로 넘어가는 코드를 만들었다.

다음으로 android:transitionName 속성을 itemView와 액티비티에 같은 이름으로 선언하면, 액티비티에서 transitionName속성을 가진 뷰를 시작으로 점점 커지면서 화면을 채워가며 액티비티화면을 보여주게 된다.

반대로 액티비티를 종료할 때는 줄어들면서 화면이 사라진다.

 

이 때, 액티비티 화면에서는 itemView에서 보여주던 것 보다 더 많은 걸 보여주는데, 화면이 커질 때 부터 보여줘서 보기 좋지 않은 상태가 되었다.

 

처음에는 ConstraintLayout에서 뷰를 Group으로 묶을 수 있는 기능이 있어서 Group으로 원하는 부분을 묶고, 이곳에 android:transitionName 속성을 주면 되지 않을까 생각했는데 어림도 없었다.

 

두번 째로는 android:transitionName 속성의 위치를 이동시켰다. 뒤로가기 버튼으로 이동시키자 뒤로가기 버튼부터 화면이 커지기 시작하고 뒤로가기 버튼으로 작아지는 것을 확인했고, android:transitionName 속성을 itemView의 맨앞에 보여지는 title을 보여주는 텍스트뷰에 android:transitionName 속성을 지정해줬더니 텍스트뷰를 기준으로 액티비티화면이 커지고 작아졌다.

아직 조금 아쉽지만 작아질 때 뒤로가기 버튼이나 itemView에서 안보이던 부분들이 보여지는 문제가 남아있었다. 그래서 액티비티를 벗어날 때 itemView에 안보이던 것들을 뷰에서 안보이도록 설정을 바꿔주었더니 원하는 방향이 완성되었다.

 

 

+ Recent posts